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


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

學校 : 不指定學校
編號 : 86043
來源 : [125.228.237.85]
最後登入時間 :
2022-12-13 19:12:38
a003. 兩光法師占卜術 | From: [210.59.78.52] | 發表日期 : 2018-10-22 19:51

#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)

學校 : 新北市立板橋高級中學
編號 : 58647
來源 : [118.150.111.60]
最後登入時間 :
2024-04-25 01:16:40
a003. 兩光法師占卜術 | From: [106.105.27.148] | 發表日期 : 2018-10-22 22:40

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

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

以上希望有幫助到你~ OwO

 
ZeroJudge Forum