如何重拍这个循环

时间:2012-12-02 14:01:44

标签: c++

这是我的代码,需要根据他的教师编号对学生进行检查,如果没有信息要说...

cout<<"Enter faculty number of the student(8 digits): "<<endl;
cin>>ch;
cout<<"Information about student with number:"<<ch<<endl;
    for(i=0;i<n;i++)
    {
        if(m[i][0]==ch)
        {
            for(j=0;j<4;j++)
                cout<<setprecision(8)<<m[i][j]<<"\t";
        }
        else if(m[i][0]!=ch)
        {
            cout<<"No information about this student"<<endl;
        }
    }

它工作得很好,问题是如果我的“n”(这个代码中输入的学生数量)是3 ...我们将有3个学生,并且“for”的周期将被制作3次。我们输入1名学生(实际上我们正在键入1个教员编号),当我启动该程序时,它会显示有关该学生的完整信息,并在两个新行上显示“没有关于该学生的信息”。 我不能把IF检查出那个FOR与N,因为我需要滚动m [i] ...谢谢

1 个答案:

答案 0 :(得分:2)

我对此代码有一些建议。

1)如果要求学生有多个条目,那么在找到条目后检查m[i][0] == ch是有意义的。我怀疑没有,在这种情况下你应该尽快使m[i][0] == ch

进行循环中断

2)cout<<"No information about this student"<<endl;不应该在循环中,因为它会打印n - 1次(如果ch确实是有效ID,否则为n次)。之后进行相关检查。

相关问题