麻煩各位先進指導小弟,目前自學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;
}
}
}
麻煩各位先進指導小弟,目前自學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;
}
}
}
我測試過你的程式碼沒有問題
這個解題系統並不是要你把所有的測資處理完之後才輸出
你可以處理一組就輸出一組
試試看吧
這個解題系統並不是要你把所有的測資處理完之後才輸出
你可以處理一組就輸出一組
試試看吧
感謝前輩指導,我把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;
}
}
感謝前輩指導,我把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
}