奇怪的数字随机出现在输出中.(C++)
Bizzare numbers appears randomly in output.(C++)
My Code:
#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]{};
读取未初始化的变量是未定义的行为。阵列a
未初始化。未定义的行为意味着程序中可能发生任何事情,包括打印垃圾值。
我建议你读一本涵盖这些基础知识的好C++书。
您可以使用索引来跟踪用户输入的项目数(noOfItem(,然后打印到该数字。例如
#include <iostream>
using namespace std;
int main(){
int a[500];
int value;
int noOfItem=0;
for(int i=0;i<500;i++){
cout<<"Please Enter a value (0-100):";
cin>>value;
if (value>=0 && value<=100){
a[i]=value;
noOfItem++;
}
else if(value<0){
break;
}
}
for(int i=0;i<noOfItem;i++){
cout<<a[i]<<" ";
}
}
您正在声明一个大小为 500 的数组,并使用 for 循环迭代进行初始化。 仅供参考,在 c++ 中,一个未初始化的数组将其所有值保存为垃圾值......垃圾值只不过是一个随机数。 您可以使用以下代码将所有数组值初始化为零。
int a[500] = {0};
相关文章:
- 递归函数计算序列中的平方和(并输出过程)
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 请解释"函数1(p1,p2,p3);"的输出
- C++:将控制台输出存储在宏中更好吗
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 为什么我的代码在输出中增加了93天
- 如何从void函数输出字符串
- 输入到文件并输出到另一个文件,并将流文件传递给函数
- AES加密到解密未正确输出
- 如何将c++程序的一些输出传递给shell,以便在shell中使用
- 使用C++程序合并排序没有得到正确的输出
- 为什么我不能在不创建字符串变量的情况下使用函数的字符串输出
- C++格式化输出问题
- 将值从二维数组输出到文本文件
- 集合上的输出迭代器:assign和increment迭代器
- 在while循环中输入带有std::cin的字符串后,控制台会输出大量胡言乱语
- 为什么rk4.do_step不输出C++中的初始条件
- 输出没有重复元素的动态数组(收缩数组)C++
- 如何根据单词在文本中出现的概率输出单词