看板 NTUE-CS102 關於我們 聯絡資訊
這是另一類想法,可以複製一份明天帶著呀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