C++ 程序在执行程序的其余部分之前退出
我正在尝试创建一个学生程序,但在我输入第四个名字后它停止了,它不允许我输入成绩,也不允许在最后显示列表C++ 程序在执行程序的其余部分之前退出,c++,cout,activity-finish,C++,Cout,Activity Finish,我正在尝试创建一个学生程序,但在我输入第四个名字后它停止了,它不允许我输入成绩,也不允许在最后显示列表 #include<iostream> using namespace std; int main() { string name[4]; double g1[4],g2[4],avg[4]; int cont; for(cont=1;cont<=4;cont++) { cout<<"STUD
#include<iostream>
using namespace std;
int main()
{
string name[4];
double g1[4],g2[4],avg[4];
int cont;
for(cont=1;cont<=4;cont++)
{
cout<<"STUDENT "<<cont<<"\n";
cout<<"Name: ";
cin>>name[cont];
cout<<"First Grade: ";
cin>>g1[cont];
cout<<"Second Grade: ";
cin>>g2[cont];
avg[cont]=(g1[cont]+g2[cont])/2;
}
cout<<"STUDENTS LIST"<<"\n";
cout<<"--------------"<<"\n";
for(cont=1;cont<=4;cont++)
{
cout<<name[cont]<<" "<<avg[cont]<<"\n";
}
}
#包括
使用名称空间std;
int main()
{
字符串名[4];
双g1[4],g2[4],平均值[4];
内部控制;
for(cont=1;cont两个循环for(cont=1;cont字符串名[4];
是一个包含4个元素的数组。有效索引为0、1、2和3。循环跳过第一个元素,并在最后一次迭代时访问超出边界的数组。这会导致未定义的行为。任何情况都可能发生。cont<4
而不是建议:将四个数组中的数据聚合为结构的一个数组。顺便说一句,arraC++中的y索引从0开始。当代码> CONT/CODE >为4时,您访问的是代码> G1[4 ] < /C>,这实际上是数组的第五个元素,超出数组。