Так что это мой 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 для А, 3 для B и так далее. Но, однако, вопрос потребовал от нас сделать расчет для + и - также. Должен ли я использовать if else после переключения?
Любая помощь будет оценена по достоинству. Заранее спасибо.
Во-первых, ваш знак переменной char не может принимать строки, которые состоят из более чем одного символа, то есть A +, A-. Поэтому вместо этого используйте char. Во-вторых, то использование сравнения if on string будет проще. Пожалуйста, измените дизайн. –
Вопрос также, по-видимому, предполагает, что «B» должен стоить 3, а затем он приводится в качестве примера стоимостью 2,7 ... – Chowlett
Вот почему тип значения не должен быть «int» –