c++ - 访问数组时的加扰数[10000]
问题描述
我一直在寻找解决方案来质疑第 10001 个素数是什么。我完成了代码:
int main() {
long long listNumber[10001];
long position = 1, divider = 0;
listNumber[0] = 2;
while(listNumber[10000] == 0) {
divider = 0;
listNumber[position] = listNumber[position-1] + 1;
while(listNumber[divider] <= sqrt(listNumber[position])) {
if(listNumber[position] % listNumber[divider] == 0) {
listNumber[position]++;
divider = 0;
} else divider++;
}
position++;
}
cout << listNumber[10000] << endl;
return 0;
}
但输出总是在变化,我不知道为什么。你能帮我弄清楚吗?谢谢你。
解决方案
您永远不会初始化数组。这意味着它的内容将是不确定的,甚至读取该内容(就像您在循环条件中所做的那样)会导致未定义的行为。
您需要初始化数组:
long long listNumber[10001] = {}; // Initialize all elements to zero
推荐阅读
- swift - 无法使用自定义按钮暂停 AVPlayer
- javascript - three.js 中的真实组透明性
- javascript - React.js 使用相同的 FORM 来创建一个 NEW db 对象并编辑各种对象
- angular - Angular FormGroup 关注按键问题。无法输入超过 1 个字符
- c - C LANGUAGE - 如何从同一 file.txt 的同一行读取字符串、int 和浮点数?
- swiftui - 在多个实例中使用 .onReceive 代码 - SwiftUI
- scheme - 用于 SICM 的 Scmutils
- python - 无法执行 pip install pandas-profiling
- c++ - Boost locale normalize 去除字符但没有重音符号
- javascript - 如何防止 mui-datatables 中的搜索栏消失?