我只想做那个循环中的一件事...... - IF或ELSE ..(当你知道它的真假时...)如果我有两个打字的学生,他们的信息和我的第一组中的第一个学生没有优秀的成绩,第二个学生的成绩优秀,我的课程打印: 1)首先循环for:it; s false,因此它生成else 2)第二个循环开启:它是真的所以它使if
我有: 无信息 优秀的学生......
我想只看到优秀成绩的学生(如果我使用BREAK;我将停止FOR周期)这是我的代码:
int gr;
cout<<"Enter group that you want to check: ";cin>>gr;
cout<<"Students with excellent grade in group "<<gr<<":\n";
for(i=0;i<n;i++)
{
if(m[i][2]==gr && m[i][3]>=5.500)
{
for(j=0;j<4;j++)
cout<<setprecision(8)<<m[i][j]<<"\t";
}
else
cout<<"No students with excellent grade in this group"<<endl;
}
我在这里遇到同样的问题。我可以使用“bool”类型以及该代码中的代码(代码基于struct):
int x;
bool no_info=false;
p: cout<<"| What personal id you want to search for: ";cin>>x;
for(int i=0;i<n;i++)
{
if(pov[i].id==x)
{
no_info=true;
cout<<pov[i].id<<endl;
cout<<pov[i].name<<endl;
cout<<pov[i].lastname<<endl;
cout<<pov[i].department<<endl;
cout<<pov[i].salary<<endl;
}
}
if(no_info){
cout<<"No information"<<endl;}
goto p;
EDITED !!!
答案 0 :(得分:2)
很难理解你想要实现的目标。但我认为你想要的是:
int gr;
bool no_excellents = true;
cout<<"Enter group that you want to check: ";cin>>gr;
cout<<"Students with excellent grade in group "<<gr<<":\n";
for(i=0;i<n;i++)
{
if(m[i][2]==gr && m[i][3]>=5.500)
{
no_excellents = false;
for(j=0;j<4;j++)
cout<<setprecision(8)<<m[i][j]<<"\t";
}
}
if(no_excellents)
{
cout<<"No students with excellent grade in this group"<<endl;
}
这不会停止for
循环,只打印那些成绩优异的学生。如果没有人有优秀成绩,该计划会告诉你。