【发布时间】:2020-08-20 04:54:45
【问题描述】:
所以我在重新开始上课之前练习编码,我想创建一个由 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;
我注意到 arr[9] 的值等于一个数字,但程序有另一个数字。 例如:创建的数组是 [42 68 35 1 70 25 79 59 63 65]
但我的输出显示 9 作为 arr[9]
42 + 68 超过 100
100 岁以下 42 + 35
42 + 1 低于 100
42 + 70 超过 100
100 岁以下 42 + 25
42 + 79 超过 100
42 + 59 超过 100
42 + 63 超过 100
100 岁以下 42 + 9
(我将只包含第一个循环以不再进行此操作)
我的 65 去哪儿了??
9 是从哪里来的??
我是不是写错了什么??
谢谢
【问题讨论】:
-
for(int i = 0; i<=9; i++)迭代次数太多了。该数组只有 9 个元素。 -
老实说,问题似乎在于您错过了教科书、教程或课程的关键部分。请返回查看它对数组大小和索引的说明。