int main() { char students[10][21]; //声明一个二维数组,存放10个同学名字 for (int i = 0; i < 10; ++i) { scanf("%s", students[i]); } for (int i = 0; i < 9; ++i) { for (int j = i + 1; j < 10; ++j) { if (strcmp(students[i], students[j]) >= 0) { /...
1 将100个人的姓名,存到二维字符数组中 2 通过strcmp比较。 通过strcpy赋值。 对二维字符数组进行排序 3 输出排序的结果。排序中,除了比较和赋值与普通的整型数组排序不同外,其他的 都一样。
一开始就建两个数组,一个放成绩,一个放名字,如:char name[100][20];float score[100];以后输入、输出、排序等等操作,都把name和score看做不可分离的一组(类似于同一个i的结构体变量),让name[i]和score[i]成为一对!排序时,当score[k]移动到m位置时,对应的name[k]也要同时移动的m...
按照C语言语法,main函数须为void类型;另外,你所编辑的程序段没有输入。就排序方式来讲你所用的是函数的址传递及字符串比较大小的函数,这点没有错误;就理解而言strcmp函数的确可以实现你所需的功能,其大小的比较式按ASCⅡ码值进行的比较,不知道你有没有意识到。
#define MAX_NAME 20 //最大名字长度#define MAX_NUM 100 //最大学生人数void sort_bubble(char (*pc)[MAX_NAME],int n)//排序函数{ int i,j; char str[MAX_NAME]; for(i=0;i<n-1;i++) { for(j=i+1;j<n;j++) { if(strcmp(pc[i],pc[j])>0) { strcpy(str,pc[i]); strcpy(...
int main(){ char name[100][15];char tmp[15];int n,i,j;scanf("%d",&n);//名字数 for ( i=0;i<n;i++){ scanf("%s",name[i]);} for (i=0;i<n;i++){ for (j=0;j<n-i-1;j++){ if (strcmp(name[j],name[j+1])>0){ strcpy(tmp,name[j]);strcpy(name[...
#include<stdio.h> #include<stdlib.h> #include<string.h> #define SIZE 3 /*定义常量SIZE便于以后的修改*/ struct student /*定义一个结构体数组存放学生的信息*/ { int number; /*学号*/ char name[20];/*名字*/ char xueyuan[20];/*学院*/ int cla;/*班级*/ int score[3];/*分数*/ int ...
存储一组姓名,如Apple,Tom,Green,Jack要求按照字典序排序并显示。 输入格式 输入第一行为样例数m,对于每个样例,第一行为人数n,接下来有n个姓名,n不超过10,每个名字长度不超过20。 输出格式 对于每个样例输出排序后的结果,每行一个姓名。 样例输入 1 4 Apple Tom Green Jack ...
你可以自己做键值表对应啊。就是做数据,把百家姓和其拼音组合对应的表,可以用文件存储,也 可以用数据库存储,或者干脆直接写在代码了,用结构数组或链表加载。然后需要排序的时候,直接用结构数组或链表排序啊。如果你除了姓,连名字都要算在排序中,那你得把整个汉字字典的文字都做成键值表,别人起...