English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

有哪位高手可以幫幫我期中考的題目是設計一程式要能顯示並且畫面可以要求你輸入姓名 學號 科目(如 國文 英文 數學 電腦等科目)並且可以輸入成績還要計算4科總平均並計算排名(30個人下去做比較且要排名次)可以的話先幫我測試看看(我怕我不會偵錯)不知道有哪位高手可以幫幫我!我是C語言的新手!拜託了將贈送高手20點感激盡!!

2006-11-17 20:25:30 · 3 個解答 · 發問者 sn108367 3 in 電腦與網際網路 程式設計

麻煩在程式加入註解我想看高手們是怎麼寫出來的我想好好學習一下!!

2006-11-17 20:36:36 · update #1

要有顯示人數 還有 ID(01~20號) 姓名 成績並算出平均之後再用合併排序法或是泡沫排序法顯示出結果!!人數的部分我想用10~20個人就好了!!

2006-11-18 05:16:07 · update #2

用陣列及泡沫排序法做!!

2006-11-18 05:43:46 · update #3

3 個解答

#include
#define MAX 100 //總共存max筆資料,可以自己改

typedef struct{
char id[20]; //學號
int chinese; //國文成績
int math; //數學成績
int english; //英文成績
int computer; //電腦成績
float average; //平均
int rank; //名次
}datatype;

int main()
{
datatype data[MAX],temp;
int i,j,n;

do{
printf("請輸入人數:");
scanf("%d",&n);
for(i=0;i printf("請輸入學生%d的學號、國文、數學、英文、電腦成績: ",i+1);
scanf("%s%d%d%d%d",data[i].id,&data[i].chinese,&data[i].math,&data[i].english,&data[i].computer);
data[i].average=(float)(data[i].chinese+data[i].math+data[i].english+data[i].computer)/4;
//↑平均=四個成績相加後,轉型為float,再除以4(若沒轉型則平均會變成沒有小數)
}
//照平均排序
for(i=0;i for(j=i+1;j if(data[i].average temp=data[i];
data[i]=data[j];
data[j]=temp;
}
}
}
//此時的順序就是名次順序,依序填入名次
for(i=0;i data[i].rank=i+1;
}
printf("學號\t國文\t數學\t英文\t電腦\t平均\t名次\n");
for(i=0;i printf("%s\t%d\t%d\t%d\t%d\t%.2f\t%d\n",
data[i].id,data[i].chinese,data[i].math,data[i].english,data[i].computer,data[i].average,data[i].rank);
}
printf("continue?(q=quit)\n");
}while(getch()!='q');
return 0;
}

之前寫過類似的...改一下就好了
人數部份可以讓使用者輸入,但超過MAX會錯誤
有問題再問吧 @﹏@

2006-11-24 16:20:09 補充:
超過MAX執行的話,我試了執行的時候的確不會錯誤…
不過執行結束的時候會說程式發生問題,必須關閉...所以也算有錯誤吧 @﹏@
應該要加個輸入的n大於max的時候顯示錯誤訊息..就沒問題囉

2006-11-21 22:30:57 · answer #1 · answered by ? 5 · 0 0

台灣首家合法娛樂城開幕囉!

體育博彩、真人對戰、現場遊戲、彩球

投注高賠率,歡迎您來體驗!

官方網站 aa777.net

2013-12-23 07:28:30 · answer #2 · answered by Anonymous · 0 1

用知識+ 找一下就有了!
http://tw.knowledge.yahoo.com/question/?qid=1306062210917
一萬年前就有十兆人有這問題了!!
自已再找一下好嗎?
http://tw.knowledge.yahoo.com/question/?qid=1206110710679

2006-11-17 22:51:55 · answer #3 · answered by ? 7 · 0 2

fedest.com, questions and answers