#15718: 為甚麼自己帶入明明正確卻顯示WA(只顯示一行)


ricky.yao168@gmail.com (Just A Marginal Person)


#include <string>
#include <iostream>
#include <math.h>
using namespace std;
int main(int argc, char** argv){
int m,d,s;
while(cin>>m>>d)
s=(m*2+d) % 3;
if(s==0)
cout<<"普通"<<endl;
else if(s==1)
cout<<"吉"<<endl;
else if(s==2)
cout<<"大吉"<<endl;
}

#15722: Re:為甚麼自己帶入明明正確卻顯示WA(只顯示一行)


OwO310659 (OwO)


C++的while如果沒有特別規範的話只會在一個語句(可以大致理解成直到分號;為止)進行迴圈,
所以你的while只會重複執行 s=(m*2+d) % 3; 而不會執行到下面的 if-else ,
直到跳出while迴圈之後才會執行下面的 if-else ,
以上就是你的程式只會輸出一行的原因。

若要使C++的while重複執行多個語句,
請將這些語句用大括號{}包起來即可~

以上希望有幫助到你~ OwO