中易网

C语言二维数组的排序问题

答案:4  悬赏:30  
解决时间 2021-03-09 02:23
程序代码如下,输入3个国家的名字,然后按字母的顺序排列并输出,可结果总是不对,总是重复输出同一个国家的名字,请大家帮忙~
include
#include
#define N 3
main()
{
char a[N][20],min[20],temp[20];
int i,j;
printf("Enter 3 names:" );
for(i=0;i scanf("%s",a[i]);

printf("\n");

for(i=0;i strcpy(min,a[i]);
for(j=i+1;j if(strcmp(a[j],min)<0)
strcpy(min,a[j]);
}
if(strcmp(a[i],min)!=0){
strcpy(temp,a[i]);
strcpy(a[i],min);
strcpy(min,temp);
}
}

for(i=0;i printf(" %s",a[i]);
printf("\n");
}
}
最佳答案
第一行差个#
还有
for(i=0;i strcpy(min,a[i]);
for(j=i+1;j if(strcmp(a[j],min)<0)
strcpy(min,a[j]);
}
if(strcmp(a[i],min)!=0){
strcpy(temp,a[i]);
strcpy(a[i],min);
strcpy(min,temp);
}
}
这一段当中 两个IF语句应该用嵌套
我用 TC调试用如下
#include
#include
#define N 3
main()
{
char a[N][20],min[20],temp[20];
int i,j;
printf("Enter 3 names:" );
for(i=0;i scanf("%s",a[i]);

printf("\n");

for(i=0;i strcpy(min,a[i]);
for(j=i+1;j if(strcmp(a[j],min)<0)
strcpy(min,a[j]);
else
if(strcmp(a[i],min)!=0)
{strcpy(temp,a[i]);
strcpy(a[i],min);
strcpy(min,temp);
}
}

for(i=0;i printf(" %s",a[i]);
printf("\n");
}
system ("pause");
return 0;
}
全部回答
你把排序的算法好好看看吧,排序的地方思维有点混乱,这是我写的,试下吧 #include #define N 5 main() { char a[10][20]; char *temp; int i,j,flag=0; for(i=0;i0) { strcpy(temp,a[i]); strcpy(a[i],a[j]); strcpy(a[j],temp); flag=1; } } if(flag==0) break; } for(i=0;i
  • 2楼网友:一身浪痞味
  • 2021-03-09 02:38
include #include #define N 3 main() { char a[N][20],min[20],temp[20]; int i,j; printf("Enter 3 names:" ); for(i=0;i
  • 3楼网友:情窦初殇
  • 2021-03-09 01:46
不是 这么说吧,数组名本身就是指针,指向数组的第一个元素 至于你所说的调用调用二级(二维吧)数组,难道不是如普通变量般直接调用吗? 根据问题补充说,这是不允许的,main()函数的形参是固定的不能传递指针。而一般的自定义函数只能用传递首地址的形式来传递二维数组,例子如下: 定义:int a[x][y]; int func(int *p,int x,int y){ //x,y即为调用x行y列的元素 printf("%d\ ",p+x*x+y); //这里是通过计算指针位置实现 return 0;} 调用: func(a,3,3); 这种通过计算地址方法调用相当麻烦。。可以考虑将数组定义在结构中,再将结构进行形参传递,当这样会降低效率...例子如下 #include<stdio.h> typedef struct{ int a[5][5];}te; te test; int func(te a,int x,int y){ printf("%d\ ",a.a[x][y]); return 0;} int main() { test.a[3][3]=5; func(test,3,3); getch(); return 0;}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯