#16726: [C++]陣列和除錯上的小問題


tong82580@gmail.com (玉米濃湯)

學校 : 臺北市立成功高級中學
編號 : 88512
來源 : [140.112.16.131]
最後登入時間 :
2019-08-27 10:46:28
a005. Eva 的回家作業 -- POJ | From: [114.42.43.53] | 發表日期 : 2019-02-02 12:11

#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所有數字??

小弟問題有點多不好意思麻煩回答的大大了

 
ZeroJudge Forum