#1479: 奇怪的OLE...麻煩了!


timmymike (超小小蝦米)

學校 : 中原大學
編號 : 2130
來源 : [61.219.23.150]
最後登入時間 :
2023-01-30 16:17:23
a032. 我愛寫程式 | From: [219.80.34.154] | 發表日期 : 2009-03-04 15:12

錯誤訊息:

您的輸出超過測資的輸出!!(line:22)
您額外輸出了: 2432902008176640000

可能的原因為
* 累贅的輸出,請勿輸出題目未要求的文字

 

程式碼:

 # include <iostream>


using namespace std ;


long long int Answer( long long int num ) {
  if ( num == 1 )
    return 1 ;
  else
    return num * Answer( num - 1 ) ;

} // Answer()

int main() {

 

  long long int num = 0, answer = 1;
   
  while ( ! cin.eof() ) {
    answer = 1 ;
    cin >> num ;
    if ( num == 0 || num == 1)
      cout << "1" << endl;
    else if ( num > 1 ) {
      cout << Answer(num) << endl ;
    } // else if
    else // num < 0
      cout << "ERROR" ;

  } // while

  return 0 ;

} // main()

在家測試過明明沒任何問題,為何會額外輸出...??????????

 

 

 
#1484: Re:奇怪的OLE...麻煩了!


jiangsir (jiangsir)

學校 : 國立高雄師範大學附屬高級中學
編號 : 2
來源 : [163.32.92.91]
最後登入時間 :
2024-05-08 15:56:54
a032. 我愛寫程式 | From: [163.32.93.88] | 發表日期 : 2009-03-04 16:03

錯誤訊息:

 

您的輸出超過測資的輸出!!(line:22)
您額外輸出了: 2432902008176640000

可能的原因為
* 累贅的輸出,請勿輸出題目未要求的文字

 

程式碼:

 # include


using namespace std ;


long long int Answer( long long int num ) {
  if ( num == 1 )
    return 1 ;
  else
    return num * Answer( num - 1 ) ;

} // Answer()

int main() {

 

  long long int num = 0, answer = 1;
   
  while ( ! cin.eof() ) {
    answer = 1 ;
    cin >> num ;
    if ( num == 0 || num == 1)
      cout << "1" << endl;
    else if ( num > 1 ) {
      cout << Answer(num) << endl ;
    } // else if
    else // num < 0
      cout << "ERROR" ;

  } // while

  return 0 ;

} // main()

在家測試過明明沒任何問題,為何會額外輸出...??????????

 

 


看看這個討論 :)

Reference: http://www.cis.nctu.edu.tw/chinese/doc/research/c++/C++FAQ-Chinese/c-cppfaq-1.html

Q30:為什麼我處理輸入時,會超過檔案的結尾?

因為 eof(檔案結尾)的狀態,是到「將要超過檔案結尾的動作」才會被設定。也就
是說,讀檔案的最後一個位元組並不會設定 eof 的狀態。

【譯註】這也是 C 常見的錯誤。

如果你的程式像這樣:

int i = 0;
while (! cin.eof()) {
cin >> x;
++i;
// work with x
}

你的 i 變數就會多了一。
你真正該做的是這樣:

int i;
while (cin >> x) {
++i;
// work with x
}
 


 
#1535: Re:奇怪的OLE...麻煩了!


timmymike (超小小蝦米)

學校 : 中原大學
編號 : 2130
來源 : [61.219.23.150]
最後登入時間 :
2023-01-30 16:17:23
a032. 我愛寫程式 | From: [140.111.103.75] | 發表日期 : 2009-03-11 14:26

原來如此!

 之前一直忘記謝謝你!現在補上!萬分感激!

 

 
ZeroJudge Forum