#16781: 這樣為何不行??


SUB2PEWDIEPIE (SUB2PEWDIEPIE)

學校 : 國立新竹高級中學
編號 : 91190
來源 : [36.224.63.138]
最後登入時間 :
2019-02-06 18:00:08
a002. 簡易加法 | From: [36.224.63.138] | 發表日期 : 2019-02-06 18:56

#include <stdio.h>
#include <stdlib.h>

int main()
{
int a =0;
int b =0;

while(a!=EOF && b!=EOF)
{scanf("%d", &a);
scanf("%d", &b);
printf("%d \n", a+b);
} return 0;
}

 
#16782: Re:這樣為何不行??


freedom501999@gmail.com (帥氣魔方生)

學校 : 不指定學校
編號 : 88611
來源 : [39.8.203.54]
最後登入時間 :
2019-05-30 22:56:25
a002. 簡易加法 | From: [125.224.172.188] | 發表日期 : 2019-02-06 22:05

 

EOF 意思是檔案結尾,C/C++ 裡 EOF 的值是 -1

你這樣跑迴圈就等同於 a 不等於 -1 且 b 不等於 -1

那讀完測資後一定會繼續跑進迴圈,然後等待不存在的 a 值輸入,就會 TLE

改成 while ( scanf ( "%d, %d" , &a , &b ) != EOF ) 才對

 
ZeroJudge Forum