这个switch函数和下面的if不知道为什么不对劲

1
#include

#include

int main()

{
int a,b,c;

printf("一二三等奖及优秀奖分别用1,2,3,4表示\n 请依次输入原成绩和获奖等级\n  input a,b:");
scanf("%d,%d",&a,&b);
switch (b)
{
    case '1':
        c=a+15;
        break;
    case '2':
        c=a+10;
        break;
    case '3':
        c=a+5;
        break;
    case '4':
        c=a+5;
        break;
    default:
        printf("error\n");
}
if(c>100)
    printf("100");
else
    printf("%d",c);

}

课程成绩可以因为在大赛上获奖而加分:
一等奖加15分,二等奖加10分、三等奖和优秀奖均加5分。加分后的成绩如果超出100分则按100分计算。
编写程序,输入同学的“程序设计”成绩和获奖等级,输出重新计算后的“程序设计”成绩

case那地方改成1,2,。。整型的,没问题啊,

#include <stdio.h>

int main()
{
    int a, b, c;
    printf("一二三等奖及优秀奖分别用1,2,3,4表示\n 请依次输入原成绩和获奖等级\n  input a,b:");
    scanf("%d,%d",&a, &b);
    switch(b)
    {
        case 1:
            c = a + 15;
            break;
        case 2:
            c = a + 10;
            break;
        case 3:
            c = a + 5;
            break;
        case 4:
            c = a + 5;
            break;
        default:
            printf("error\n");
    }
    if(c > 100)
        printf("100");
    else
        printf("%d",c);
    return 0;
}

scanf("%d,%d",&a,&b);
->
scanf("%d,%c",&a,&b);

或者下面的
case '1':
case '2':
...
写成
case 1:
case 2:
...