当以下程序输入以下输入时(从 cin 读取):
1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1
输出令人惊讶:
1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1
#include<iostream>
using namespace std;
int main()
{
int arey[3][3];
int i,j;
for(j=0;j<=3;j++)
{
for(i=0;i<=3;i++)
{
cin>>arey[j][i];
}
}
arey[0][0]=1;
arey[3][3]=1;
i=0,j=0;
for(j=0;j<=3;j++)
{
for(i=0;i<=3;i++)
{
cout<<arey[j][i];
}
}
return 0;
}
有人可以解释我应该更改什么以获得与输入相同的输出吗?
最佳答案
矩阵是 3x3 还是 4x4?
您创建了 3x3 但循环运行了 4 个元素并且您还更新了 [3][3]
基本上,您的索引会溢出,您会覆盖矩阵中的不同单元格。
更新:检查您的输入,使用:int arey[4][4];
关于c++ - 为什么它会 cout 在我们不在数组中 cin 的东西中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6634543/