所以這是我的C++的問題:等級系統中C++
Write a program that translates a letter grade into a number grade. Letter grades are
A, B, C, D and F, possibly followed by + or -. Their numeric values are 4, 3, 2, 1 and
0. There is no F+ or F-. A + increases the numeric value by 0.3, a – decreases it by
0.3. However, an A+ has value 4.0.
Enter a letter grade: B
The numeric value is 2.7
這裏是我的代碼:
int main()
{
char grade;
int value;
cout << "Enter letter grade : " ;
cin >> grade;
switch(grade)
{
case 'A' : value = 4;
break;
case 'B' : value = 3;
break;
case 'C' : value = 2;
break;
case 'D' : value = 1;
break;
case 'E' : value = 0;
break;
default : cout << "Wrong input " << endl;
break;
}
cout << value;
system("PAUSE");
return 0;
}
它能夠打印出4 A,3 B等。但是,這個問題要求我們對+和 - 進行計算。我應該在開關後使用if else語句嗎?
任何幫助,將不勝感激。提前致謝。
首先,你的char變量等級不能包含多個單個字符組成的字符串,即A +,A-。所以使用char數組來代替。 其次,然後使用如果在字符串比較會更容易。 請重新設計。 – 2013-04-24 09:19:33
這個問題也似乎表明,'B'應該值3,然後它作爲一個例子值得2.7 ... – Chowlett 2013-04-24 09:23:10
這就是爲什麼類型的價值不應該是'int' – 2013-04-24 09:24:36