是大虾的指导一下小弟啊!!!!!!!指针迷惑中!!!!!!!!(在线等)

klynigel 2004-12-23 08:02:34
第一个是:
将一个数组6乘6的(随机产生),每一行进行从大到小的排序。
疑问:
排列不是从大到小???????



#include<stdlib.h>
#include<time.h>
yuansu(int *x)
{int *i,*p;p=x+36;
randomize();
for(i=x;i<p;i++)
{if((i-x)%6==0)printf("\n");
*i=random(100);printf("%d\t",*i);}
}
void daxiao(int *x)
{int *i,*n,*j,t;
n=x+6;
for(i=x;i<n-1;i++)
for(j=x+1;j<n;j++)
if(*i>*j){t=*i;*i=*j;*j=t;}
}
main()
{int *p,a[6][6],t,i;
p=a[0];printf("\nShu zu shi:\n");
yuansu(p);
printf("\nCong xiao dao da shui xu shi:\n");
for(i=0;i<6;i++){p=a[i];daxiao(p);}
for(p=&a[0][0];p<&a[0][0]+36;p++)
{if((p-a[0])%6==0)printf("\n");printf("%5d\t",*p);}
}



第二道:
一个长度不大于40的字符串,已知其中总包含两个字符A,求处于两个A中间的字符个数,并输出这些字符。
疑问:
个数我输出了
但字符输不出来



#include<stdio.h>
panduan(char *x,int n)
{int i,j,k;
for(i=0;i<n;i++)
if(*(x+i)=='A')
for(j=i+1;j<n;j++)
if(*(x+j)=='A')k=(j-1)-i;
printf("\nZi fu ge shu shi: %d\n ",k);
printf("Zi fu shi:\n");
for(i=i+1;i<j;i++)
printf("%c",*(x+i));
}
main()
{char a[40];
printf("\nZi fu chuan shi:\n");
gets(a);
panduan(a,40);

}


...全文
44 点赞 收藏 回复
写回复
回复

还没有回复,快来抢沙发~

发动态
发帖子
非技术区
创建于2007-09-28

4415

社区成员

5.8w+

社区内容

C/C++ 非技术区
社区公告
暂无公告