gpt4 book ai didi

c++ - 这个数组值从哪里来?

转载 作者:行者123 更新时间:2023-12-01 14:51:33 26 4
gpt4 key购买 nike

因此,我在重新开始上课之前正在练习编码,我想创建一个由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
42 + 35以下100
42 + 1以下100
42 + 70(超过100)
42 + 25以下100
42 + 79(超过100)
42 + 59(超过100)
42 + 63(超过100)
42 + 9以下100
(我将只包括第一个循环,不再赘述)
我的65去哪里了?
9是哪里来的?
我写错了吗?
谢谢

最佳答案

I notice that the value of arr[9] is equal to one number but the program has another number for it.


计算机计数从 0开始,并以比总大小小1的数字结束。对于 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
    需要对第一个循环下方的循环进行相同的更改。

    关于c++ - 这个数组值从哪里来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63498531/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com