#22248: 為什麼等差的公差不是1就不對? 新手很菜 請各位幫幫忙阿 謝謝


estherhan5853@gmail.com (我就爛)

學校 : 不指定學校
編號 : 127038
來源 : [106.1.234.10]
最後登入時間 :
2022-05-02 22:22:18
a005. Eva 的回家作業 -- POJ | From: [123.195.195.26] | 發表日期 : 2020-08-18 20:41

#include<iostream>

using namespace std;

int main(){

    int time;

    cin>>time;

    int n[5]={0};

    for(int t=time;t>0;t--){

 

        for(int i=0;i<4;i++){

            cin>>n[i];

        }

        if((n[1]-n[0])==(n[3]-n[2])==(n[2]-n[1])){

            n[4]=n[3]+n[2]-n[1];

        }

        else{

            n[4]=n[3]*(n[3]/n[2]);

        }

        for(int i=0;i<5;i++){

            cout<<n[i]<<" ";

    }

        cout<<endl;

    }

 

 

 

    return 0;

    }

input:1 3 5 7 

output:1 3 5 7 7 

請問哪裡寫錯了?

 

 
#22249: Re:為什麼等差的公差不是1就不對? 新手很菜 請各位幫幫忙阿 謝謝


IanWang20061204 (詭譎)

學校 : 臺北市立建國高級中學
編號 : 95399
來源 : [111.248.243.191]
最後登入時間 :
2024-04-28 20:50:31
a005. Eva 的回家作業 -- POJ | From: [61.228.223.177] | 發表日期 : 2020-08-18 21:30

#include

using namespace std;

int main(){

    int time;

    cin>>time;

    int n[5]={0};

    for(int t=time;t>0;t--){

 

        for(int i=0;i<4;i++){

            cin>>n[i];

        }

        if((n[1]-n[0])==(n[3]-n[2])==(n[2]-n[1])){

            n[4]=n[3]+n[2]-n[1];

        }

        else{

            n[4]=n[3]*(n[3]/n[2]);

        }

        for(int i=0;i<5;i++){

            cout<<n[i]<<" ";

    }

        cout<<endl;

    }

 

 

 

    return 0;

    }

input:1 3 5 7 

output:1 3 5 7 7 

請問哪裡寫錯了?

 

C中沒有連續等於的用法啦

 

if((n[1]-n[0])==(n[3]-n[2])==(n[2]-n[1]))

改成

if((n[1]-n[0])==(n[3]-n[2])&&(n[3]-n[2])==(n[2]-n[1]))

應該就AC拉

 

p.s.還有其實不用那麼多大括號,如果if、while、for這類的東西後面的大括號裡只塞一個分號的話,可以把括弧去掉

 
ZeroJudge Forum