intnumNames =sizeof(names) /sizeof(names[0]); // 调用排序函数 sortNames(names, numNames); // 打印排序后的姓名 printf("按字典顺序排序后的姓名:\\n"); for(inti = 0; i < numNames; ++i) { printf("%s\\n", names[i]); } return0; } 这个例子中,sortNames函数使用嵌套的循环遍历姓...
int num; //学号 char sname[25]; //姓名 char sex[4]; //性别 int age; //年龄 };struct student stu[N]={ {1008,"张佳欣","女",18}, {1001,"赵文彬","男",19}, {1005,"陈敏芳","女",17}, {1010,"吴力维","男",20}, {1009,"吴泽林","男",21} };//按姓名排序 void sort(...
int num; //学号 char sname[25]; //姓名 char sex[4]; //性别 int age; //年龄 }; struct student stu[N]={ {1008,"张佳欣","女",18}, {1001,"赵文彬","男",19}, {1005,"陈敏芳","女",17}, {1010,"吴力维","男",20}, {1009,"吴泽林","男",21} }; //按姓名排序 void sor...
qsort(sorted_names, n, sizeof(char*), compare_names);printf("按拼音排序后的姓名列表:\n");f...
写出姓氏与第一个字母的映射表,比如 赵->Z;钱->Q;孙->S;李->L;周->Z;吴->W;郑->Z;王->W 然后需要用到排序的时候,再调用它对应的字母来进行排序,也就是比较ASCII码的大小了。编码就自己去实现啦!
void sort_name(Staff *p) { int i,j,max;Staff b;for(i = 0;i < T - 1;i++) { // 应该是T - 1,不是T max = i;for(j = i + 1;j < T;j++) { if(strcmp((p + max)->name,(p + j)->name) > 0)max = j;} if(max != i) { b = *(p + max);(p ...
printf("请输入第%d个学生姓名:",i); scanf("%s",str[i++-1]); } printf("排序前的学生名单如下:\n"); display_name(str,n); sort_bubble(str,n); printf("排序后的学生名单如下:\n"); display_name(str,n); return 0;} 说明:1:采用的是冒泡排序,用快速排序当然快些,但我忘了2:已验证...
除非是英文姓名,可以按照首字母升序排列!C使用的是ASCII码表。没有汉字!如果是JAVA的话,那么使用Unicode表,里面就包括汉字了!如果是字母的话,那么比较ASCII值的大小,小的在前面,大的在后面。另外编写程序要考虑错误情况,比如输入的是数字的时候怎么处理。这样严谨性比较好。
1 将100个人的姓名,存到二维字符数组中 2 通过strcmp比较。 通过strcpy赋值。 对二维字符数组进行排序 3 输出排序的结果。排序中,除了比较和赋值与普通的整型数组排序不同外,其他的 都一样。
首先定义一个结构体的定义:typedef struct Student { char name[20]; //名字 int grade; //成绩 } 初始化各个实例:struct Student Jack, Tom, Tim;将各个成员赋值:Jack.name[20] = Jack;Jack.grade = 63;以此类推。排序的具体方法也不难,自己看看书吧。使用结构体的好处就是将一组...