C++ 这个数组值来自哪里?
所以我在课程开始前练习编码,我想创建一个由10个整数组成的随机数组,并想找出哪两个数相加后大于100 当我运行下面的代码时C++ 这个数组值来自哪里?,c++,arrays,random,C++,Arrays,Random,所以我在课程开始前练习编码,我想创建一个由10个整数组成的随机数组,并想找出哪两个数相加后大于100 当我运行下面的代码时 int arr[9]; for(int i = 0; i<=9; i++){ arr[i]=(rand()%100)+1; cout<<arr[i]<<endl; } cout<<endl; for(int k = 0; k<=9; k++){ for (int j = k+1; j<=9;
int arr[9];
for(int i = 0; i<=9; i++){
arr[i]=(rand()%100)+1;
cout<<arr[i]<<endl;
}
cout<<endl;
for(int k = 0; k<=9; k++){
for (int j = k+1; j<=9; j++){
if((arr[k]+arr[j])>100){
cout<<arr[k]<<" + "<<arr[j]<<" "<<"over 100"<<endl;
}
else{
cout<<arr[k]<<" + "<<arr[j]<<" "<<"under 100"<<endl;
}
}
}
return 0;
int-arr[9];
对于(int i=0;i
我注意到arr[9]的值等于一个数字,但程序有另一个数字
计算机中的计数从0开始,以小于总大小的一个数字结束。对于int arr[9]
- 第九个索引是
arr[8]
- 第一个索引是
arr[0]
- 第二个索引是
arr[1]
执行arr[9]
时,您正在跨越边界(访问不在范围内的元素),这将导致未定义的行为
因此,循环应该在i<9
处停止:
for(int i = 0; i < 9; i++) // i < 9 now vs i <=9
for(int i=0;i<9;i++)//i<9 now vs ifor(int i=0;老实说,问题似乎在于您错过了课本、教程或课程的一个关键部分。请返回查看它对数组大小和索引的说明。