C中的评分系统

所以这是我的C问题:

编写一个程序,将字母等级翻译成数字等级.字母等级为A,B,C,D和F,可能后跟或 – .它们的数值为4,3,2,1和0.没有F或F-. A将数值增加0.3,a – 将其减少0.3.但是,A的值为4.0.

输入字母等级:B
数值是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语句吗?

最佳答案 如果输入是A或B-,那么它不再是一个字符.因此,使用一串字符获取它,并检查值.

char a[3];
float m,n;
cin>>a;
if(a[1]=='+')
   m=0.3;
else if (a[1]=='-')
   m=-0.3;
else
    m=0;
switch(a[0])
{
  //Assign the value of n as 4,3,2,1 depending upon the grade.
}
cout<<n+m;

将打印成绩

点赞