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');
}
}