作者DarkPrincex (DP)
看板C_and_CPP
標題Re: [問題] 作業卡關 懇請協助了(讀檔 & 結構部分)
時間Mon Jun 24 11:40:51 2013
※ 引述《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