#2874: 求助...第一筆資料會錯誤


mick56456476 (Mick Chen)

學校 : 臺北市立松山高級工農職業學校
編號 : 9826
來源 : [203.68.164.81]
最後登入時間 :
2013-09-14 13:19:26
a005. Eva 的回家作業 -- POJ | From: [60.250.137.246] | 發表日期 : 2009-11-28 22:45

麻煩各位先進指導小弟,目前自學C++中,解此題時遇到如下問題:

Input:

2

1 2 3 4

1 2 4 8

Output:

1 2 3 4 1

1 2 4 8 16

 

Source code:

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    int s[20][4]={0};
    int total,i,j,c;
    c=0;
    while(cin >> total){
        do{
            cin >> s[c][0] >> s[c][1] >> s[c][2] >> s[c][3];
            if(s[c][1] - s[c][0] != s[c][2]- s[c][1]){
                s[c][4] = s[c][3] * (s[c][3] / s[c][2]);
            }else{
                s[c][4] = s[c][3] + (s[c][3] - s[c][2]);
            }
            c++;
        }while(c<total);
        c=0;         
        for(i=0;i<total;i++){
            for(j=0;j<5;j++){
                cout << s[i][j] << " ";
            }
            cout << endl;
        }
    }
}
 

 
#2875: Re:求助...第一筆資料會錯誤


example (學姊)

學校 : 臺北市立麗山高級中學
編號 : 6634
來源 : [60.250.138.144]
最後登入時間 :
2022-08-09 17:07:42
a005. Eva 的回家作業 -- POJ | From: [114.32.174.120] | 發表日期 : 2009-11-28 23:22

麻煩各位先進指導小弟,目前自學C++中,解此題時遇到如下問題:

Input:

2

1 2 3 4

1 2 4 8

Output:

1 2 3 4 1

1 2 4 8 16

 

Source code:

#include
#include

using namespace std;

int main(int argc, char *argv[])
{
    int s[20][4]={0};
    int total,i,j,c;
    c=0;
    while(cin >> total){
        do{
            cin >> s[c][0] >> s[c][1] >> s[c][2] >> s[c][3];
            if(s[c][1] - s[c][0] != s[c][2]- s[c][1]){
                s[c][4] = s[c][3] * (s[c][3] / s[c][2]);
            }else{
                s[c][4] = s[c][3] + (s[c][3] - s[c][2]);
            }
            c++;
        }while(c
        c=0;         
        for(i=0;i
            for(j=0;j<5;j++){
                cout << s[i][j] << " ";
            }
            cout << endl;
        }
    }
}
 

 我測試過你的程式碼沒有問題

 這個解題系統並不是要你把所有的測資處理完之後才輸出

 你可以處理一組就輸出一組

 試試看吧

 
#2876: Re:求助...第一筆資料會錯誤


mick56456476 (Mick Chen)

學校 : 臺北市立松山高級工農職業學校
編號 : 9826
來源 : [203.68.164.81]
最後登入時間 :
2013-09-14 13:19:26
a005. Eva 的回家作業 -- POJ | From: [60.250.137.246] | 發表日期 : 2009-11-28 23:56

 
 我測試過你的程式碼沒有問題

 這個解題系統並不是要你把所有的測資處理完之後才輸出

 你可以處理一組就輸出一組

 試試看吧


感謝前輩指導,我把code改了,可是這次問題是:

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

 

不知道他怎麼測的...

我輸入2 4 6 8 輸出為 2 4 6 8 10

第4行似乎是空行,也沒錯,怎麼會這樣,麻煩前輩不吝指教。

 

source code:

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    int s[4]={0};
    int total,i,c;
    c=0;
    while(cin >> total){
        do{
            cin >> s[0] >> s[1] >> s[2] >> s[3];
            if(s[3] - s[2] == s[2]- s[1]){
                s[4] = s[3] + (s[3] - s[2]);
            }else{
                s[4] = s[3] * (s[3] / s[2]);
            }
            for(i=0;i<5;i++){
                cout << s[i] << " ";
            }
            cout << endl;
            c++;
        }while(c<total);
        c=0;
    }
}
 

 

 

 
#2881: Re:求助...第一筆資料會錯誤


example (學姊)

學校 : 臺北市立麗山高級中學
編號 : 6634
來源 : [60.250.138.144]
最後登入時間 :
2022-08-09 17:07:42
a005. Eva 的回家作業 -- POJ | From: [118.166.112.185] | 發表日期 : 2009-11-29 21:23



感謝前輩指導,我把code改了,可是這次問題是:

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

 

不知道他怎麼測的...

我輸入2 4 6 8 輸出為 2 4 6 8 10

第4行似乎是空行,也沒錯,怎麼會這樣,麻煩前輩不吝指教。

 幫你把程式碼改過了

  #include <cstdlib>
 #include <iostream>

 using namespace std;

 int main(int argc, char *argv[]) // 其實命令列參數可以拿掉
 {
     int s[5]; // 從 4 改成 5 因為你要存五個數字(不過不知道為什麼之前可以)
     int total,i,c;
     cin >> total; // 把這裡的 do-while 迴圈拿掉,因為測資第一行就告訴你有幾筆測資了
     for( c = 0 ; c < total ; c++ ) { // 處理 total 筆測資
         cin >> s[0] >> s[1] >> s[2] >> s[3];
         if(s[3] - s[2] == s[1]- s[0]) // 這裡的大括弧我也拿掉,因為你的 if 跟 else 下面只有一行,兩行以上才有必要加,for 跟 while 迴圈也是同樣的道理
             s[4] = s[3] + (s[1] - s[0]);
         else
             s[4] = s[3] * (s[1] / s[0]);

         for( i = 0 ; i < 5 ; i++ ) // 括弧也可以拿掉,理由同上
             cout << s[i] << " ";
         cout << endl;
     }
   
     return 0; // 最後記得要回傳 0
 }
 

 
ZeroJudge Forum