0

我只想在那个循环中做一件事...... - IF 或 ELSE .. (当你知道它的真假时..)如果我有两个输入学生的信息和我的第一个学生第 1 组成绩不优秀,第二个学生成绩优秀 我的程序打印:1)第一个循环 for:it;s false 所以它使 else 2)第二个循环 for:它是 true 所以它使如果

我有: 没有信息 成绩优异的学生...

我只想看到成绩优异的学生(如果我使用 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”类型以及如何在该代码中使用(代码基于结构):

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;

已编辑!!!

4

1 回答 1

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循环,只会打印那些成绩优异的学生。如果没有人有优秀的成绩,程序会告诉你。

于 2012-12-03T19:11:25.073 回答