#4109: 差別?


fallangel (墮)


#include<iostream>
#include<cstdlib>
using namespace std;
int main(void)
{
    int t;
    int a,b,c,d,i;
    cin>>t;
    for(i=0;i<t;i++)
    while(cin>>a,cin>>b,cin>>c,cin>>d)
    {
      if(b-a==d-c==c-b)
        cout <<a<<" "<<b<<" "<<c<<" "<<d<<" "<<d+b-a<<endl;
      else
        cout <<a<<" "<<b<<" "<<c<<" "<<d<<" "<<d*b/a<<endl;    
    }
}

與正確輸出不相符(line:4)
您的答案為: 2 4 6 8 16
正確答案為: 2 4 6 8 10

 

但若把if那改成 if(b-a==d-c) 就能正確

請問是差在哪裡?? 為什麼改成那樣就能通過??

#4128: Re:差別?


vbdcnj07 (00)


但若把if那改成 if(b-a==d-c) 就能正確

請問是差在哪裡?? 為什麼改成那樣就能通過??

 

  if(b-a==d-c==c-b)

相當於

  if((b-a==d-c)==c-b)

會先判斷b-a==d-c,若成立回傳1(true),不成立回傳0(false)

所以就會變成 

if(1==c-b)   or   if(0==c-b)   兩種情況

所以根據你的意思應寫成  if(b-a==d-c&&d-c==c-b)

有錯請指正!!!