看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《eric123415 (鋼絲螺絲)》之銘言: : 開發平台(Platform): VC++ : 問題(Question): 讀檔部分卡關 只設計了結構體的部分 : 不知道這種資料要怎讀入結構體 : 餵入的資料(Input): : txt檔內容 : 第1個數字代表"10個人" 第二個數字代表每個人有"5科"成績 : 接下來一連串數字為成績(等於要每個人 要有五科成績) : 10 5 53 66 16 77 81 73 9 57 66 98 61 84 68 35 67 86 77 72 8 : 51 35 98 4 45 5 60 77 5 52 89 67 40 32 42 47 82 11 57 52 : 70 5 3 27 72 37 14 38 55 95 50 : 預期的正確結果(Expected Output): : 能計算每個同學的五科總分+成績 以及全班總分+平均... : 錯誤結果(Wrong Output): : 程式碼(Code):(請善用置底文網頁, 記得排版) : http://ideone.com/KREKY4 : 補充說明(Supplement): : 不好意思 小弟c++菜鳥...對讀檔方面有點頭痛.... : 懇請大家幫忙了... 我也參考上面那篇用陣列來偷懶好了www 不過我想要更偷懶連動態陣列都不想宣告就是了(汗 #include<stdio.h> int score[50][50]; //最多50人50科 int sum[50],allsum; //每個人的總分跟全體總分 main(){ int n,m; FILE *input; input=fopen("data.txt","r"); fscanf(input,"%d %d",&n,&m); //n=人數,m=科數 allsum=0; for(i=0;i<n;++i){ sum[i]=0; for(j=0;j<m;++j) fscanf(input,"%d",&score[i][j]),sum[i]+=score[i][j]; allsum+=sum[i]; } //input跟加總大概這樣剩下的平均應該會用 } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.253.146
DarkPrincex:阿...我的i跟j沒宣告... 06/24 11:41
TsinTa:如果遇到超過50人或50科就掛了..... 06/24 12:08
DarkPrincex:恩,不過動態宣告的話對一個新手來說好像太難? 06/24 13:13
DarkPrincex:而且感覺上那個數字是自己會知道要改的...吧(? 06/24 13:14
maerdimer:二樓... 有更好的作法嗎? 06/24 13:26
maerdimer:我題目沒看清楚,這個題目應該用 malloc 才是對的... 06/24 13:30
TsinTa:樓上都把malloc講出來了我還要說啥XD 06/24 14:00
TsinTa:另一個問題是如果不用動態,最好把50這個魔術數字處理一下 06/24 14:01
TsinTa:宣告一個const int專門處理這種數字比較好 06/24 14:02
eric123415:XD 大大的指令我好像比較看的懂@@ 06/24 16:25
TsinTa:不過這是C,不是C++喔.... 06/24 16:50
eric123415:了解! 這是用陣列的方式去讀入成績吧 我是一直在研究 06/24 16:54
eric123415:怎麼讀入結構體 因為這目前在教結構體 只是老師+入讀檔 06/24 16:56
maerdimer:題目看錯咩~sorry 啦 T 大 06/24 17:06
TsinTa:讀入結構體,就是把你宣告的結構拿來取代陣列就好啦..... 06/24 17:24
TsinTa:m大不用這麼客氣啦^^ 06/24 17:26
TsinTa:還有,這問題應該把陣列和結構混合來用..... 06/24 17:30
damody:編的過就好?? 06/24 17:49
eric123415:好的 感謝了!! 06/24 19:58
TsinTa:http://ideone.com/U6Odt4 C++寫法,亂寫的,僅供參考。 06/24 20:08