我想使用排序功能的年級,這將排序「名姓midterm1」,但我不知道如何分配名稱和姓氏字符串到臨時數組。有任何想法嗎?分配字符串的東西
void student_swap(struct student *x){
int z,y,temp;
char temp2[15];
for(z=0; z<10; z++){
for(y=0; y<9; y++){
if(x[y].mid1>x[y+1].mid1){
temp = x[y+1].mid1;
x[y+1].mid1 = x[y].mid1;
x[y].mid1 = temp;
strcpy (temp2,x[y+1].name);
strcpy (x[y+1].name,x[y].name);
strcpy (x[y+1].name,temp2);
strcpy (temp2,x[y+1].surname);
strcpy (x[y+1].surname,x[y].surname);
strcpy (x[y+1].surname,temp2);
} // if
} // for
} // for
} //student_swap
排序int
值工作正常,但strcpy
什麼都不做。 這是我出來把代碼
for (i=9;i>=0;i--){
;
printf ("%s %s %d\n",x[i].name,x[i].surname,x[i].mid1);
}
printf ("\n");
student_swap(x);
for (i=9;i>=0;i--){
;
printf ("%s %s %d\n",x[i].name,x[i].surname,x[i].mid1);
}
,這是我的輸出
murat hot 73
mehmet umur 72
idil saracoglu 55
ecem bektas 75
sevde pir 70
asli devecioglu 65
can akkurt 45
levent dogan 60
anil erdiz 30
ali durmus 40
murat hot 75
mehmet umur 73
idil saracoglu 72
ecem bektas 70
sevde pir 65
asli devecioglu 60
can akkurt 55
levent dogan 45
anil erdiz 40
ali durmus 30
您確定strcpy無能爲力嗎?你寫了一個strcpy的測試嗎?你在使用調試器嗎? – 2012-08-09 15:19:11
是的,我是編程新手,我不知道如何使用調試器。我發佈代碼的其餘部分,輸入和輸出。 – Cagurtay 2012-08-09 15:25:35
另外:像'x,y,z'這樣的變量名很難讀取。特別是當'x'是與'y'和'z'不同的類型時,甚至當'x'是一個參數而'y,z'是自動的時更是如此。對於'temp'和'temp2'同上。 'temp'本身就沒有問題,但是當你開始使用'temp2'等(以及不同的類型)時,它很難在後面讀取,並知道發生了什麼。 – ArjunShankar 2012-08-09 15:29:33