#16893: 關於題目的測資


rollfc (胖胖貓)

學校 : 國立清華大學
編號 : 81012
來源 : [49.216.18.187]
最後登入時間 :
2024-11-10 10:25:04
b942. 轟轟島 -- 105學年度復旦程式設計班檢定考 | From: [140.113.208.181] | 發表日期 : 2019-02-16 19:00

題目的輸出說明提到:

每行數字不超過28個,且總合不超過60000

但我自己實際讀取測資時與上述的保證是牴觸的

我自己是根據讀取一個數字後再抓一個字元,如果是空白就默認是同一筆測資繼續讀取直到換行的字元視為這筆測資結束

#include<bits/stdc++.h>
using namespace std;


int main(){
    int num[30], N, sum;
    while(scanf("%d",&num[0])!=EOF){
        sum=num[0], N=1;
        while(getchar()==' ' and N<30)
            scanf("%d",&num[N]),
        sum+=num[N++];
        if(N==30){ puts("LIE"); continue; }
    }
}

附上我讀取的程式碼,還是我誤會題目的說明了?

先謝謝每各位的回覆

 
#16894: Re:關於題目的測資


rollfc (胖胖貓)

學校 : 國立清華大學
編號 : 81012
來源 : [49.216.18.187]
最後登入時間 :
2024-11-10 10:25:04
b942. 轟轟島 -- 105學年度復旦程式設計班檢定考 | From: [140.113.208.181] | 發表日期 : 2019-02-16 20:24

雖然回覆自己的文章很奇怪,不過自己找到問題點

測資應該以 getline 讀取整行後再在解析數字,因為換行前可能有空白字元的關係

原本的判斷方式會因此出現問題

 
 
ZeroJudge Forum