c语音编译名字排序
1. c语言关于姓名排序程序
除非是英文姓名,可以按照首字母升序排列!C使用的是ASCII码表。没有汉字!如果是JAVA的话,那么使用Unicode表,里面就包括汉字了!
如果是字母的话,那么比较ASCII值的大小,小的在前面,大的在后面。另外编写程序要考虑错误情况,比如输入的是数字的时候怎么处理。这样严谨性比较好。
2. c语言怎么用姓名(汉字)进行排序
写出姓氏与第一个字母的映射表,比如
赵->Z;
钱->Q;
孙->S;
李->L;
周->Z;
吴->W;
郑->Z;
王->W
然后需要用到排序的时候,再调用它对应的字母来进行排序,也就是比较ASCII码的大小了。编码就自己去实现啦!
3. 利用c语言编制输入姓名后按字母顺序排列
试了试,可以排序啊。有几个简单的错误不知道是不是因为你提问时打错了。第一个,printf提示是不能直接用汉语的吧。还有就是if(strcmp(name[min],name[j]>0))括号加的不大对,if(strcmp(name[min],name[j])>0)然后,我输入就可以了。什么内存错误,没有发现。如果有问题,请及时补充。
4. C语言输入人名排序
如果是英文人名 直接比较首字母的ASII
如果是中文的话 就要比较区位码
5. C语言程序设计 姓名排序
k==i 说明排序前k,i指向一个人的id,排序后还是指向一个人,所以没必要交换
strcmp(name[k],name[j])>0 strcmp 字符串比较函数,
这是一个选择排序算法,每趟求出最大人名的下标,并交换
6. c语言姓名首字母排序问题
按照C语言语法,main函数须为void类型;另外,你所编辑的程序段没有输入。就排序方式来讲你所用的是函数的址传递及字符串比较大小的函数,这点没有错误;就理解而言strcmp函数的确可以实现你所需的功能,其大小的比较式按ASCⅡ码值进行的比较,不知道你有没有意识到。
7. c语言怎么把100个人的名字按姓名排序输出
1 将100个人的姓名,存到二维字符数组中
2 通过strcmp比较。 通过strcpy赋值。 对二维字符数组进行排序
3 输出排序的结果。
排序中,除了比较和赋值与普通的整型数组排序不同外,其他的 都一样。
8. C语言编程问题,编译老是通不过 :编写函数 sort 实现按照姓名的排序,按照姓名先后输出学生的各项信息。
书写能不能美观点啊,,,,你这书写格式,让人纠结
9. 一个c语言程序,想要实现名字随着序号重新排列
主函数没问题。主要是sort()中排序出错了。
看你两两比较数据,似乎是想用冒泡排序法。
将sort()稍作修改即可:
void sort(char (*p)[10],int *q)
{
int i,j,m;
char t[10];
for(i=0;i<9;i++)
{
for(j=0;j<9-i;j++)
if(*(q+j)>*(q+j+1))
{
m=*(q+j);*(q+j)=*(q+j+1);*(q+j+1)=m;
strcpy(t,*(p+j));
strcpy(*(p+j),*(p+j+1));
strcpy(*(p+j+1),t);
}
}
for(i=0;i<10;i++)
printf("%s %d\n",*(p+i),*(q+i));
}
我把形参的类型改了,不然会有警告的。
当然,你也可以用顺序排序或插入排序等等方法。C语言书上都有例子的。
10. c语言按中文姓名排序问题
#include <stdio.h>
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 + max) = *(p + i);
*(p + i) = b;
}
} // 这儿添加了"}"
for(i = 0;i < T;i++) {
printf("%s ",(p + i)->id);
printf("%s ",(p + i)->name);
printf("%s ",(p + i)->sex);
printf("%d %d %d ",(p + i)->data.year,(p + i)->data.month,(p + i)->data.day);
printf("%.2lf ",(p + i)->post_wage);
printf("%.2lf ",(p + i)->subsidies);
printf("%.2lf ",(p + i)->withholding);
putchar('\n');
}
}