-1
我计算数字的发生,结果是准确的,右:使用数组和运行时检查失败#2-S,Visual Studio的C++
#include <iostream>
using namespace std;
const int max = 51;
int main()
{
int num = 0;
int array[max] = { 0 };
cout << "Enter interger number from 0 to 50 and type in -1 to show occurence:";
while (num!=-1)
{
cin >> num;
array[num] = array[num]+1;
}
cout << "all entered number are:" << endl;
cout << "Number\tFrequency" << endl;
for (num = 0; num < max; num++)
{
if (array[num]>0)
{
cout << num <<"\t"<< array[num] << endl;
}
}
return 0;
}
为什么在Visual Studio总是通知我的以下:
运行时检查失败#2-S,
“运行时检查失败#2-S”并不意味着任何东西最多的人。请包括一个确切的错误信息,并通过调试来向我们展示您发现的内容。另外,显示导致问题的输入,以便重现,或者更好地将输入硬编码到程序中。 – chris
你永远不会检查'num'是否超出界限:'array [num]'。 – user0042
如果用户输入的任何数字大于50或小于0,则表示您超出范围。 '-1'超出了'array [num] = array [num] +1;' – drescherjm