0

これは、学生を学部番号でチェックする必要がある私のコードです。それを言う情報がない場合は...

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つの教員番号を入力しています)プログラムを開始すると、その学生に関するすべての情報が表示され、2つの新しい行に「この学生に関する情報はありません」と表示されます. m[i]をロールする必要があるため、Nを使用してFORからIFチェックを外すことはできません...ありがとう

4

1 に答える 1

2

このコードについていくつか提案があります。

1)m[i][0] == ch学生が複数のエントリを持っていると予想される場合にのみ、エントリを見つけた後に確認することは意味があります。私はそうは思わないm[i][0] == ch.

2)回数cout<<"No information about this student"<<endl;を出力するため、ループに入れてはなりません(実際に有効な ID の場合、そうでない場合は回数)。その後、関連するチェックを行います。n - 1chn

于 2012-12-02T15:12:53.790 に答える