c++ - 奇怪的数字随机出现在输出中。(C++)

标签 c++ random output cout

我的代码:

#include <iostream>
using namespace std;
int main(){
int a[500];
int value;
for(int i=0;i<500;i++){
    cout<<"Please Enter a value (0-100):";
    cin>>value;
    if (value>=0 && value<=100){
        a[i]=value;
    }
    else if(value<0){
        break;
        }
    }
    for(int i=0;i<5;i++){
        cout<<a[i]<<" ";
    }

}

输出样本:

Please Enter a value (0-100):10

Please Enter a value (0-100):12

Please Enter a value (0-100):5

Please Enter a value (0-100):-5

10 12 5 0 786432

--------------------------------
Process exited after 7.597 seconds with return value 0
Press any key to continue . . .

数组有未给出的值。我不知道它们是如何定义的。请帮我解决这个问题。

注意:对不起我的错误。我还是个新手。

最佳答案

else if(value<0)

当此条件为真时,您将在 a[i] 中留下一个未初始化的值这就是你所看到的。它也可以做一些完全不同的事情,因为读取未初始化的值会使您的程序具有未定义的行为。

用零初始化你的数组:int a[500]{};

关于c++ - 奇怪的数字随机出现在输出中。(C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58502553/

相关文章:

c++ - 接收 0xC0000005 : Access violation reading location storing new pointer in pointer array

c++ - 使用 std::cout 格式化二进制文字

c - 如何在C程序中打开Linux终端?可能吗?

c++ - C++ 中的函数拆分?

c++ - UMDF,无法为 Microsoft 定义的类指定 [ClassInstall32] 部分

c++ - 在不调用 QThread::start() 的情况下使用 QThread 是否有意义?

java - 未生成新随机数

iphone - 模拟器在 arc4random-method 中卡住

c++ - 产生从负到正范围的随机 float ?

c - 如何从 C 字符串中提取数字?