-4
私のグレードの平均コードでは、a、b、c、d、fという文字グレードがありますが、実行しようとすると、この範囲。この意味がわかりません。あなたのプログラムでは、F、B、C、D、E、 -'c'はこのスコープ内で宣言されていません
#include<iostream>
using namespace std;
string average(int g);
int main()
{
int grade;
cout << "Enter your grade:" << endl;
cin >> grade;
cout << "Your grade is a" << average(grade) << "!" << endl;
return 0;
}
string average(int g)
{
if (g >= 90 && g <= 100)
{
return a;
}
else if(g >= 80 && g <90)
{
return b;
}
else if (g > 70 && g < 80)
{
return c;
}
else if (g == 70)
{
return d;
}
else if (g < 70)
{
return f;
}
return 0;
}
「return a」の代わりに「return」を使用してください。最初のケースではグレード文字列/テキスト "a"を返しています。 2番目のケース(元のコード内)では、スコープに含まれていない変数 'a 'を検索しようとしています。それがあなたに投げかけている苦情です。 – kaza
これは問題を解決しませんが、 'if ... else if'ラダーでこれらの' <'チェックをすべて行う必要はありません。 'g 'が95の場合、最初のブランチが作成され、2番目のブランチの' g <90'は効果がありません。残りのすべての式で2番目のテストと同じです。それで 'if(g> = 90)... else if(g> = 80)... else if(g> = 70)... else ...' –