#include<iostream>
using namespace std;
int main()
{
//先定義數列,t是數列總數,i為第幾個數列,j是數列中第幾個數字
int t=0,i=0,j=0;
int number[i][j];
//程式正式執行
cin>>t;
//新增數列跟數字
for(i=0;i<=t-1;i++)
{
for(j=0;j<=3;j++)
{
cin>>number[i][j];
}
}
//判斷每個數列的第五個數字的值
for(i=0;i<=t-1;i++)
{
if(number[i][3]-number[i][2]==number[i][2]-number[i][1])
{
number[i][4]=number[i][3]+(number[i][1]-number[i][0]);
}
else
{
number[i][4]=number[i][3]*(number[i][1]/number[i][0]);
}
for(j=0;j<=4;j++)
{
cout<<number[i][j]<<" ";
}
cout<<endl;
}
//輸出所有數列跟數字
return 0;
}
-----------------------------------------------------------------------------------------------------------------------------
這是我目前的程式碼
在輸出時永遠整能輸出第二行的內容
ex:
輸入
2
1 2 3 4
1 2 4 8
輸出
1 2 4 8 16
1 2 4 8 16
輸入
2
1 2 4 8
1 2 3 4
輸出
1 2 3 4 5
1 2 3 4 5
遇到上述問題後想要除錯
監控視窗卻得出這樣的結果
number[0][0]:<error: Cannot access memory at address 0x3893f74>
或是
number[0][0]:<error: Cannot perform pointer math on incomplete types, try casting to a known type, or void *.>
可以稍微請問一下是哪邊出錯了嗎?
話說小弟也有順便爬了下討論區的code但有些不解
以這個為例
#include <iostream>
using namespace std;
int main()
{
int a,b,c,d,e,i,t;
cin>>t;
if(0 <= t <= 20){
for(i=1;i<=t;i++)
{
cin>>a>>b>>c>>d;
if(d-c==c-b)
{
e=d+c-b;
cout<<a<<' '<<b<<' '<<c<<' '<<d<<' '<<e << endl;
}
else
{
e=d*c/b;
cout<<a<<' '<<b<<' '<<c<<' '<<d<<' ' << e << ' '<<endl;
}
}
}
return 0;
}
這樣是否代表每輸入完一行數列
a b c d e就要馬上做運算
不然下次輸入值的時候就會直接被覆蓋??
可是這樣似乎不符合一次cin所有數字才一次cout所有數字??
小弟問題有點多不好意思麻煩回答的大大了