此代码在我的计算机上正常工作,但SPJ告诉我它有一个分段错误。你能帮我调试吗?
#include <iostream>
using namespace std;
int main() {
int i, arr[5];
int j = 0;
for (i = 0; i<5; i++)
{
cout << "Enter number between 0 to 99 \n";
cin >> arr[i]
}
while (arr[j] != 42) {
cout << arr[j] << "\n";
j++;
}
return 0;
}
答案 0 :(得分:2)
你的循环:
while (arr[j] != 42) {
cout << arr[j] << "\n";
j++;
}
只有在有人输入42时才会退出。如果没有,则j
将增加到5及更高,这意味着您将尝试访问不存在的数组索引,如{{ 1}}只有5个元素。
在您重复项目时,一个问题是检查arr
:
j