-1

私の問題が何であるかを理解するのに苦労しています。出力は「結果1:55.00グレードP」のようなものにする必要があります

私は初心者なので、この苦労の中でどんな助けも高く評価されます、ありがとう

for(int a=0;a< 10;a++)
{
cout << "Result " << a+1 << " " << score[a] << " " << determine_grade(score[a]) <<  "\n";
}
system("Pause");


}



char determine_grade(double a)
{
char grade;
switch(grade)
{
    case(1):
        if (a >100)
            cout << "Invalid Input!";
    case(2):
        if (a >= 90)
            grade = 'A';
        break;
    case(3):
        if (a >= 70)
            grade = 'B';
        break;
    case(4):
        if (a >= 60)
            grade = 'C';
        break;
    case(5):
        if (a >= 50)
            grade = 'P';
        break;
    default: grade = 'U';
}

cout << grade;
}
4

2 に答える 2

3

まず第一に、switch間違って使用しています:gradeは有効なセレクターではなく、初期化さえされていません。のみを使用してブロックを書き換えif-elseます。

2番目:関数では、それではreturn grade;なく、する必要がありcoutます。それが要点です。関数は何らかの値を計算し、呼び出し元の関数はそれをどうするか (印刷するか、保存するか、または何か他のこと) を決定します。

于 2013-11-10T08:39:35.273 に答える
2

これを試して

char determine_grade(double a)
{
    if (a > 100)
    {
        cout << "Invalid Input!";
        return '?';
    }
    if (a >= 90)
       return 'A';
    if (a >= 70)
       return 'B';
    ...
    return 'U';
}

switch ステートメントを使用している理由がわかりません。

あなたのコードがdetermine_grade's 仕事を書く方法は、値を返すことであり、それは呼び出しコード (つまり for ループ) に表示されます。したがって、 notで使用returnします。determine_gradecout

于 2013-11-10T08:41:53.810 に答える