c++ - 为什么数组取随机值?
问题描述
我在我的数组中赋值,但它随机取不同的值。为什么会这样?
#include<iostream>
using namespace std;
int main(){
int n;
cin>>n;
int arr[n][n];
for(int i=0;i<n;i++){
for (int j= 0; j < n; j++){
cin>>arr[i][j];
}
}
int sum,count= 0;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
arr[i-1][j]=0;
arr[i][j-1]=0;
arr[n+1][j]=0;
arr[i][n+1]=0;
cout<<arr[i][j+1]<<" "<<arr[i][j-1]<<" "<<arr[i+1][j]<<" "<<arr[i-1][j]<<"\n";
//sum = arr[i][j+1]+arr[i][j-1]+arr[i+1][j]+arr[i-1][j];
//cout<<sum<<" ";
}
}
}
输入:
2
1 2
3 4
输出:
2 4218949 3 1878280832
3 1 0 4218949
0 0 1998471964 1
1998471964 3 0 0
解决方案
您正在访问数组范围之外的内容。如果数组具有大小n
,则您无法访问arr[n+1]
(或arr[n]
两者之一)并且您无法访问arr[-1]
. 唯一合法的访问是arr[0]
, arr[1]
, ..., arr[n-2]
, arr[n-1]
.
这就是为什么你得到随机值,
推荐阅读
- c# - Rust 插件:无法隐式转换类型
- java - 在 CVC4 中使用类型参数调用自定义数据类型的无参数构造函数
- .net-core - 在 GitHub 工作流中使用 Entity Framework Core 工具时出错
- c# - Elasticsearch 无法搜索字符串字段
- php - OpenCart 3 + Journal 3,从客人结帐中删除电子邮件字段?
- python - (Python) 尝试使用 Google Classroom API 访问课程作业时出现错误 401
- arrays - Excel:检查 2 个列表以查看它们是否包含值,并计算它们相互配对的次数
- java - 从另一个文件调用类来服务
- javascript - document.getElementsByName 找不到元素
- php - 第一行php之后数组行值是空白的