程序在执行程序的其余部分之前退出
Program exits before executing rest of the program
我正在尝试创建一个学生程序,但在我输入第 4 个名字后它停止了,它不允许我输入成绩,也没有在最后显示列表...
#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";
}
}
两个循环 for(cont=1;cont<=4;cont++)
是错误的,因为您只能对 4 元素数组使用索引 0, 1, 2, 3
。
您应该使用 for(cont=0;cont<4;cont++)
并将 cout<<"STUDENT "<<cont<<"\n";
更改为 cout<<"STUDENT "<<(cont+1)<<"\n";
。
另一种选择是向每个数组再添加一个元素。那时不会使用数组的第一个元素,但这可能有助于提高可读性。
string name[4];
是一个有 4 个元素的数组。有效索引为 0、1、2 和 3。您的循环跳过第一个元素并在最后一次迭代时越界访问数组。这会导致未定义的行为。什么事都有可能发生。
我正在尝试创建一个学生程序,但在我输入第 4 个名字后它停止了,它不允许我输入成绩,也没有在最后显示列表...
#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";
}
}
两个循环 for(cont=1;cont<=4;cont++)
是错误的,因为您只能对 4 元素数组使用索引 0, 1, 2, 3
。
您应该使用 for(cont=0;cont<4;cont++)
并将 cout<<"STUDENT "<<cont<<"\n";
更改为 cout<<"STUDENT "<<(cont+1)<<"\n";
。
另一种选择是向每个数组再添加一个元素。那时不会使用数组的第一个元素,但这可能有助于提高可读性。
string name[4];
是一个有 4 个元素的数组。有效索引为 0、1、2 和 3。您的循环跳过第一个元素并在最后一次迭代时越界访问数组。这会导致未定义的行为。什么事都有可能发生。