我是新的堆栈溢出,有点新编程。 C ++是我的第一语言,我在练习中越来越习惯,但我似乎无法解决这个问题。我询问用户有多少学生参加了调查,然后询问每个学生看过多少部电影。电影的数量是我试图存储到数组中的......这里是代码,
void FormArray(int students){
vector<int> MovieAry(5);
do{
cout << "How many students took the survey?" << endl;
cin >> students;
if (students < 0)
cout << "Please enter a positive value" << endl;
}while(students < 0);
for (int i = 0; i < students; i++){
do{
cout << "How many movies did student #" << i + 1 << " see? ";
cin >> MovieAry[i];
if(MovieAry[i] < 0)
cout << "Please enter a positive value" << endl;
else if( MovieAry[i] > 19)
cout << "The maximum allowed movies for this survey is 19" << endl;
}while(MovieAry[i] < 0 || MovieAry[i] > 19);
cout << MovieAry[i] << " ";
}
}
但是在输入最后一个值之后,我的prorgram崩溃说我的项目触发了一个断点。在我使用向量之前,我使用的是常规数组,但是在访问一些奇怪的0x0000数字时遇到错误。
感谢您的帮助,谢谢。
答案 0 :(得分:0)
您将MovieAry
向量设置为5,然后输入实际学生数。如果学生人数超过5人,你的向量将超出界限。我建议您在阅读学生人数后创建向量,并将其设置为所需的大小。