NTUE-CS102 板


LINE

※ [本文轉錄自 NTUE-CS101 看板] 作者: yantchen (球童Yanting) 看板: NTUE-CS101 標題: [課業] C++期末 時間: Fri Jan 9 23:18:14 2009 期末考可以帶任何紙本資料 課本一定要帶 誰知道會不會發生太緊張把cout拼成cow 依照過去的題目還有王老大洩漏給我的訊息 題目應該是 寫一個計算成績的程式 輸入幾個人的成績(多個科目) 計算總分或平均之類的 然後排序 每年視他教到哪增減要求 像是要用函數啦 要用指標啦 要可以輸入姓名啦 blablabla 今年他有洩題說一定要用一個函數寫一個選擇用什麼分數排序的畫面 等等下面解說 考試時間有 3 個小時 拿到考卷先別緊張 看一下題目的要求 通常他不會像online jugde系統那樣嚴格(對100分錯0分) 他的評分標準會寫在題目卷上 例: 要求陣列怎樣宣告 有做到20% 要求怎樣用函數 有做到20% 可編譯成功 20% 之類的 所以說 盡量寫 寫不出來也至少交個屍體 分數不要掛零 程式分幾個部份 輸入 & 計算總分 先輸入有幾個人 然後宣告陣列 如果你不會宣告動態的陣列大小(就是幾個人就開幾個陣列空間) 那就給他來個int math[99]之類的 反正這次都是鍵盤輸入 我想王老大應該沒那閒工夫故意輸入200人的資料讓你的程式爆炸 還有個要點 : 先要求程式能正常執行 再要求語法、記憶體佔用空間 等等 簡單寫一下程式碼 // only in dev c++ int n; cout<<"請輸入學生數量:"; cin>>n; int id[n]; float chinese[n],english[n],math[n],sum[n]; 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]; } *PS 青綠色部分 Visual C++ 不支援這個語法 他要用 new ( 指標那邊才會教 ) 請改用 int id[1000];float chinese[1000],english[1000],math[1000],sum[1000]; 功能選擇畫面 這裡要解說老師要求的那個函數 先想像不用函數的時候怎麼寫 int sortby; cout<<"請輸入依照什麼分數排序\n[1]總分\n[2]國文\n[3]...\n[4]..:"; cin>>sortby; switch(sortby) { case 1: // 依照總分 break; case 2: // 依照某科成績 break; case 3: // 依照另一科 ... } 上面是我星期三看到大多人的寫法 好 再來怎麼拉成函數呢? 其實只要動兩行就好 把 cin>>sortby; 改成 sortby=choose(); 然後寫一個函數叫把cout跟cin兩行放進去 int choose() { int a; cout<<"請輸入依照什麼分數排序\n[1]總分\n[2]國文\n[3]...\n[4]..:"; cin>>a; return a; } choose裡面做的事情很簡單 顯示提示語 輸入一個數字存到a 然後把a return 給等號左邊的變數 這樣就搞定囉 排序 想想氣泡排序法之前怎麼排序五個數字的 int a[5]={1,3,5,2,4}; int t; for(int i=0;i<5;i++) { for(int j=i;j<4;j++) { if(a[j+1]>a[j]) { t=a[j]; a[j]=a[j+1]; a[j+1]=a[j]; } } } 注意那個4是怎麼回事 因為判斷式子是寫 a[j+1]>a[j] j<4 所以 j=0~3 這個式子頂多是 a[4]>a[3] 如果寫 j<5 就會變成 a[5]>a[4] 但 a[5] 並沒有用到 所以會把其他程式留在記憶體上的垃圾數據拿來排序 得到意想不到的結果(?) 再來另外一個重點是 現在每個人有5筆資料(學號、三個成績、總分) 所以比較完之後 要交換一次就要把五個資料一起交換 程式碼: int t2; float t; switch(sortby) { case 1: // 總分排序 for(int i=0;i<n;i++) { for(int j=i;j<n-1;j++) { if(sum[j+1]>sum[j]) { t2=id[j]; id[j]=id[j+1]; id[j+1]=t2; t=chinese[j]; chinese[j]=chinese[j+1]; chinese[j+1]=t; t=english[j]; english[j]=english[j+1]; english[j+1]=t; t=math[j]; math[j]=math[j+1]; math[j+1]=t; t=sum[j]; sum[j]=sum[j+1]; sum[j+1]=t; } } } break; case 2: // 依照國文排序 for(int i=0;i<n;i++) { for(int j=i;j<n-1;j++) { if(chinese[j+1]>chinese[j]) ... 其他排序的選項只要複製case1裡面全部的東西然後改青色部份就好 } 排序結束以後 依照大到小cout出來 這個不用我說了吧 呼 打完了 有什麼問題就MSN或推文問我吧 大家加油 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.167.188.87
1F:推 rockmyangel:謝謝學長!!!!!!!!!!!!!!!!!!!!!!!!!!!!!我會盡力看它! 01/09 23:20
2F:推 silufy:cow好好笑.....XD 謝謝學長!!!!!:) 01/09 23:32
3F:推 jim19900412:學長準備被王老大解僱了 01/09 23:34
4F:推 cindy1006:感謝學長!!!:] 01/09 23:36
5F:推 Gary2005123:學長你人太好拉,不推的還是人嗎? 01/09 23:39
6F:推 rockmyangel:為什麼說學長要被王老大解雇? 01/09 23:45
7F:推 gavingo15:學長人真好 01/10 00:00
8F:推 sscs:感謝學長啊!! 01/10 00:01
9F:推 jeff33:學長太感謝你啦!!!推推推 01/10 15:33
10F:推 peipei610:學長好棒唷 :) 謝謝!! 01/10 23:15
11F:推 aklewis1128:受益良多~3Q 01/11 00:44
12F:推 aeolus1215: 授液量多~3Q 學長謝謝!! 01/11 01:52
13F:推 StranGhost:學長辛苦了,謝謝! 01/11 02:35
14F:推 linjrming:aeolus1215: 授液量多~3Q 學長謝謝!! 01/11 14:16
15F:推 feather427:耶嘿 , 學長謝謝你!! :) 01/11 14:24
16F:推 casey75489:推受液量多!!!!!!!!!XDXDXD 01/11 15:31
17F:推 casey75489:再推一次受液量多~~~~~ XDXD 謝謝學長!! 01/11 15:48
18F:推 jerry771210:去年我們都沒有這種待遇~哭哭 學長人真好 01/12 09:29
19F:推 gurocloudia:wow~雖然我看不懂...不過真的很感謝學長嘿! 01/12 17:42
--



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 120.127.36.183
20F:推 ip3311:謝謝學長! 01/08 18:40
21F:推 ming3318:COW真的好好笑XD" 謝謝學長囉~ 01/09 00:00
22F:推 didi12252001:傳說這篇沒推爆會全班當掉 01/09 02:11
23F:推 Arashinoon:那還不趕快推?! 01/09 02:49
24F:推 CaptainWill:等當上版主連推呀-ˇ- 01/09 02:54
25F:推 dosomethnig: 01/09 11:56
26F:推 dosomethnig:受益良多 01/09 13:21
27F:推 CaptainWill:推!! 01/09 15:45
28F:推 Arashinoon:每日一推,有推有保庇 01/09 15:48
29F:推 CaptainWill:肛溫蛤~ 01/09 15:58
30F:推 suan710:有洩今年的題嗎= =? 01/09 22:27
31F:推 rds1098:推!! 雖然指標那裡還是不懂,還是推一個~ 01/10 10:48
32F:推 j2612280:敢問排序可以直接用sort函數嗎? 01/10 11:15
33F:推 garfield112:推 01/10 15:28
34F:推 game0416:樓上上怎麼會需要用sort呢 (跑 01/10 15:29
35F:推 dosomethnig:Motorcycle? 01/10 15:33
36F:推 j2612280:排序呀= =.... 01/10 23:00
37F:推 gcobc12632:突然跑回來看一下…功能選單那個好靠北= =" switch…… 01/11 11:15
38F:→ gcobc12632:case是什麼都忘記了 是說可以選擇不同的成績做排序嗎? 01/11 11:16
39F:推 gcobc12632:那是不是只要用cin跟if作判斷就好了? 01/11 11:44
40F:推 harry731731:推! 01/11 12:46







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:iOS站內搜尋

TOP