字符串数组排序, 高人请看一下
下面这段代码是输入十个名字,按ASC码从小到大排序后输出结果,比如: asea和ase应该ase排在前,但出错了,请高手看看是什么原因
另对两个字符串数组内容对调有什么其它的方法吗,我初学,刚学至数组
程序代码:
#include <stdio.h> main() { char name[10][15]; int i; //输入十个人名 for (i=0;i<10;i++) { printf("请输入第%d个人的姓名:",i+1); scanf("%s",&name[i]); } //起泡排序 int j,c; for (i=0;i<9;i++) for (j=i+1;j<10;j++) for (c=0;c<15&&name[i][c]==name[j][c]=='\0';c++) if (names[i][c]>name[j][c]||name[j][c]=='\0') { char b[15]; for (c=0;c<15;c++) b[c]=name[i][c]; for (c=0;c<15;c++) name[i][c]=name[j][c]; for (c=0;c<15;c++) name[j][c]=b[c]; break; } else if(name[i][c]<name[j][c]||name[i][c]=='\0') break; //输出排序结果 printf("\n排序后顺序:"); for (i=0;i<10;i++) printf("\n%2d: %s",i+1,name[i]); }