作者j2612280 (翔風~安)
看板NTUE-CS102
標題[情報] C++期末 成績計算
時間Tue Jan 12 20:25:40 2010
這是另一類想法,可以複製一份明天帶著呀XD~
不懂的明天計概完再問我!!
#include<iostream>
using namespace std;
void usort(int n, char (*name)[100], float (*score)[4], int sortby){
cout << "姓名\t國文\t英文\t數學\t總分" << endl;
for(int i=0;i<n;i++){
cout << name[i] << "\t";
for(int j=1;j<4;j++)
cout << score[i][j] << "\t";
cout << score[i][0] << endl;
}
char tmpc[100];
float tmps;
for(int i=0;i<n;i++){
for(int j=0;j<n-1;j++){
if(score[j+1][sortby]>score[j][sortby]){
strcpy(tmpc,name[j]);
strcpy(name[j],name[j+1]);
strcpy(name[j+1],tmpc);
for(int k=0;k<4;k++){
tmps=score[j][k];
score[j][k]=score[j+1][k];
score[j+1][k]=tmps;
}
}
}
}
}
int main(){
int n;
char name[1000][100],garbage[10];
float score[100][4]={0};
//score[][0] 總分 score[][1] 國文 score[][2] 英文 score[][2] 英文
cout << "請輸入學生數量:";
cin >> n;
cin.getline(garbage,10); //回收用
//我的想法:
for(int i=0;i<n;i++){ //跑幾個人
cout << "第" << i+1 << "個人的名字:";
cin.getline(name[i],100);
for(int j=1;j<4;j++){ //跑三個科目
if(j==1) cout << " 國文成績:";
else if(j==2) cout << " 英文成績:";
else if(j==3) cout << " 數學成績:";
cin >> score[i][j];
score[i][0]+=score[i][j]; //存進總分中
}
cin.getline(garbage,10); //回收用
}
/*彥廷學長提供(變數還未宣告)
cout<<"請依 學號 國文 英文 數學 的順序輸入 例: 1 99 87 85\n";
for(int i=0;i<n;i++){
cout<<"請依序輸入第 "<<i+1<<" 個同學的 座號 國文 英文 數學 成績:";
cin>>id[i]>>chinese[i]>>english[i]>>math[i];
sum[i]=chinese[i]+english[i]+math[i];
}
*/
cout<<"請輸入依照什麼分數排序\n[1]總分\n[2]國文\n[3]英文\n[4]數學:";
int sortby;
cin >> sortby;
switch(sortby){
case 1:
usort(n,name,score,0);
cout << "以 \"總分\" 排序後:" << endl;
break;
case 2:
usort(n,name,score,1);
cout << "以 \"國文\" 排序後:" <<endl;
break;
case 3:
usort(n,name,score,2);
cout << "以 \"英文\" 排序後:" <<endl;
break;
case 4:
usort(n,name,score,3);
cout << "以 \"數學 \" 排序後:" <<endl;
break;
default:
cout << "未輸入以何種分數排列: Bye!!" << endl;
break;
}
cout << "名次\t姓名\t國文\t英文\t數學\t總分" << endl;
for(int i=0;i<n;i++){
cout << i+1 << "\t" << name[i] << "\t";
for(int j=1;j<4;j++)
cout << score[i][j] << "\t";
cout << score[i][0] << endl;
}
system("pause");
}
各位C++加油!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 120.127.47.200
※ 編輯: j2612280 來自: 120.127.47.200 (01/12 20:27)
推 dosomethnig: 必推 機車魂!!!!!! 01/12 20:26
※ 編輯: j2612280 來自: 120.127.47.200 (01/12 20:28)
推 CaptainWill:樓上不是說去打系籃了... 反詐騙!快PO板!!! 01/12 20:30
推 rds1098:怎複製..? XD 01/12 21:53
→ Arashinoon:不告訴你勒~~星左 01/12 21:54
→ CaptainWill: 勒~~~~~~ 01/12 21:56
推 rds1098:...無言 告訴我拉 我不想gg 01/12 21:57
推 CaptainWill:^+O複製 01/12 21:58
→ CaptainWill:錯了,是^o 01/12 21:59
推 Arashinoon:ALT+F4 ENTER就能複製了 01/12 22:00
推 CaptainWill:靠元品你幹嘛跟他講 01/12 22:01
→ Arashinoon:我看他滿可憐的... 01/12 22:02
推 rds1098:幽默喔兩位...哭哭 01/12 22:02
→ CaptainWill:蕩星糾~~~~竟會不會複製成功呢?? 我們看下去 01/12 22:03
→ Arashinoon:難道這背後還有什麼不可告人的秘密? 讓我們看下去! 01/12 22:03
→ j2612280:星佐在暗示我為什不用下載的XD 01/12 22:05
推 rds1098:嘿阿 我還真的不會用... 01/12 22:07
推 rds1098:有咧!! 弄到囉~ 01/12 22:10
推 CaptainWill:竟然不用元品的方法 01/12 22:12
推 rds1098:厲害吧 新手出頭天了!! 01/12 22:13
推 Arashinoon:居然給他弄出來了 硍.... 01/12 22:16
推 CaptainWill:蕩星跩個鵰... 01/12 22:17
推 rds1098:不曉得我複製的方法是不是正常的方法 反正弄到就好囉XD 01/12 22:19
推 CaptainWill: ↑ (一個字一個字跟著打到筆記本的方法) 01/12 22:22
→ CaptainWill:人氣23,不簡單 01/12 22:23
推 Arashinoon:這樣也太累了 01/12 22:23
推 rds1098:人氣洗蝦密?! 哪有可能一個字一個字打阿 傻囉~ 01/12 22:24
→ CaptainWill:我哪知道你 01/12 22:25
→ CaptainWill:對了回答你一下 不要問,很恐怖 01/12 22:25
推 Arashinoon:你以為就你會抓鳳郎錯誤?! 01/12 22:36
→ Arashinoon:第三頁 01/12 22:36
→ CaptainWill:樓上專業 01/12 22:36
→ Arashinoon:score[][1] 國文 score[][2] 英文 score[][2] 英文 01/12 22:36
→ Arashinoon:兩個英文是哪招? 01/12 22:36
→ j2612280:哈哈!!透露一下!!是小胖找到的唷!! 01/12 23:42
推 CaptainWill:是我先找到的= = 01/12 23:42
→ j2612280:噢!!我是回鳳狼前幾篇的文的 01/12 23:51
推 CaptainWill:囧 01/12 23:53
推 game0416:小洞,非常抱歉qq 01/12 23:58
推 suan710:囧... 突然發現..最後名子沒交換耶.. 01/13 01:55
推 suan710:安邦 有獎品嗎? 01/13 01:57
推 dosomethnig:有 晚安! 01/13 01:59
推 CaptainWill:zZZZZ 01/13 02:00
→ j2612280:這個嘛...本程式空白3行(含)以上表示有隱藏= =並不是沒交 01/13 10:31
→ j2612280:換唷!! 01/13 10:31
→ j2612280:不過沒發現的人現在講好像也來不及了=0=... 01/13 10:32
推 CaptainWill:安邦我不懂你的意思 囧 01/13 10:55
→ j2612280:就是我把幾行弄成黑色的意思= = 01/13 12:00
噓 Arashinoon:你吃飽太閑逆!! 01/13 12:26
→ j2612280:哈XD~ 01/13 12:57