0

私の if ステートメントは 100% 機能していません。何が間違っていたのかわかりません。ここに私の機能があります

void DisplayStudentsInRange(const StudentType student[], int numStudents, int lownum, int highnum)
{
    cout <<"Enter two values from 0-100 for the range of test scores you want to view: ";
    cin >> lownum >> highnum;

    if ( lownum < 0 || highnum < 0 || lownum > highnum || lownum > 100 || highnum > 100)
    {
        cout <<"Please re-enter 2 values of test scores that you want to view from within the range 0-100";
        cin >> lownum >> highnum;
    }

    cout << endl << "List of students with scores in the range " << lownum << " to " << highnum << endl << endl;
    FormatNameScoreGrade(cout);


    for(int i = 0; i < numStudents; i++)
    {
        if(student[i].testScore >= lownum && student[i].testScore <= highnum)
        {

            cout << setw(20) << student[i].studentName << setw(10) << student[i].testScore << setw(10) << student[i].grade << endl;
        }
    }
    cout << endl;
}
4

3 に答える 3

1

ifステートメントで括弧を使用します

if ( (lownum < 0) || (highnum < 0) || (lownum > highnum) || (lownum > 100) || (highnum > 100))

過去にそれをしなかったとき、私は問題を抱えていました。

于 2013-11-07T03:15:23.717 に答える
0

何を指定してください 適切でない場合も単なるメモです 最初の場合は、2 回目のデータが間違って入力された場合に 1 回だけ機能します ユーザーに再入力を求めることはありません 正しい入力を取得したい場合は、最初のデータを置き換える必要がありますしばらくしたら。

しかし、全体的には使用する方が良いでしょう

 Do {
     cout <<"Enter two values from 0-100 for the range of test scores you want to view: ";
     cin >> lownum >> highnum;
     }while( (lownum < 0) || (highnum < 0) || (lownum > highnum) || (lownum > 100) || (highnum > 100)); //statement

Do は最初はそのまま実行され、入力が正しくない場合、while ステートメントは入力が正しくなると do 部分をトリガーします。couts を「Enter/ReEnter」などに編集できます。

于 2013-11-07T03:12:51.513 に答える