当前位置: 首页 > 知识库问答 >
问题:

此数组值从何而来?

吴城
2023-03-14

所以我在上课前练习编码,我想创建一个由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]

但是我的输出显示arr[9]是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个从何而来??

我写错什么了吗??

谢谢

共有1个答案

方弘
2023-03-14

我注意到arr[9]的值等于一个数字,但程序有另一个数字。

计算机中的计数从0开始,以比总大小小一个数字结束。对于int arr[9]

  • 第九个索引是arr[8]
  • 第一个索引是arr[0]
  • 第二个索引是arr[1]

当你做arr[9]时,你正在越过边界(访问一个不在范围内的元素),这会导致未定义的行为。

因此,您的循环应该在< code>i处停止

for(int i = 0; i < 9; i++) // i < 9 now vs i <=9

需要对第一个循环下面的循环进行相同的更改。

 类似资料:
  • 问题内容: 例 问题,如何获得单一值,例如: 问题答案: 查看您的中的键和缩进: …等等

  • 如果以前声明过宽度和高度,如何分解它们?

  • 问题内容: 我有一个变量,如下所示: 该变量中包含许多城镇数据。如何有效地从数据中提取第三个元素?我,下面会是什么? 如果我想将两个值都存储在数组中怎么办?那是 我是Java的新手。我希望有一种不使用for循环的方法。 问题答案: 在较新的浏览器上,您可以使用,否则可以避免使用循环。 但是for循环更兼容。

  • 问题内容: 我在React中有一个表单,可以动态添加新的输入元素。这似乎 工作正常,但我似乎无法访问此 屏幕截图中所示的输入值… console.log数组 我尝试了以下 console.log(this.state.telephone.name) 和… console.log(this.state.telephone.tidx.name) 其中tidx是唯一键。 这是构造函数… and this

  • 问题内容: 我有一个数组叫做 我需要从该数组中获取一个随机值并将其存储在变量中,我该怎么做? 问题答案: 您还可以执行以下操作: 当您有关联数组时,这就是这样做的方法。

  • 我对编程很陌生,我想做一个程序,用不同的变量发出12张卡片,然后将每张完整的卡片存储在某个地方供以后使用: N=Number(卡片上的数字,可以从1到3) C=Color(卡片是什么颜色,绿色、蓝色或红色) F=Form(有3种形式:蛇、时钟和圆) R=Fill(可以是满的、半的或空的) 这是我到目前为止得到的: