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


estherhan5853@gmail.com (我就爛)


#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 (詭譎)


#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這類的東西後面的大括號裡只塞一個分號的話,可以把括弧去掉