C++ 这个数组值来自哪里?

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;

所以我在课程开始前练习编码,我想创建一个由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; 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 i
for(int i=0;老实说,问题似乎在于您错过了课本、教程或课程的一个关键部分。请返回查看它对数组大小和索引的说明。