1. 程式人生 > >互動題 codeforces C. Bear and Prime 100

互動題 codeforces C. Bear and Prime 100

To flush you can use (just after printing an integer and end-of-line):

  • fflush(stdout) in C++;

  • System.out.flush() in Java;

  • stdout.flush() in Python;

  • flush(output) in Pascal;

  • See the documentation for other languages。這段話的意思就是要在c++的printf之後使用fflush(stdout)好處是

在使用多個輸出函式連續進行多次輸出時,有可能發現輸出錯誤。

因為下一個資料再上一個資料還沒輸出完畢,

還在輸出緩衝區中時,下一個printf就把另一個數據加入輸出緩衝區,

結果沖掉了原來的資料,出現輸出錯誤。

在 printf();後加上fflush(stdout);強制馬上輸出,避免錯誤。

但是這題其實不加也不會wa的orz...

因為我的輸出判斷資料沒有加endl,所以出現了一個從來沒有見到過的奇怪錯誤

Idleness limit exceeded on test 1

查了資料發現是檔案輸入輸出的錯誤..-->所以這裡還有點懵orz

因為加了endl就ac了

程式碼量很短,並且也覺得不會再出現了

#include<bits/stdc++.h>
    using namespace std;
string str;
string yes="yes";
int num[]={2,3,4,5,7,9,25,49,81,11,13,17,19,23,29,31,37,41,43,47};

int main(){
    int count=0;
    for(int i=0;i<20;i++){
        cout<<num[i]<<endl;
        cin>>str;
        if(str==yes)
            count++;
        if(count>=2)
            break;
    }
    if(count>=2)
        cout<<"composite"<<endl;
    else
        cout<<"prime"<<endl;
    return 0;
}