C语言 5分制成绩

题目内容:

下面代码的功能是将百分制成绩转换为5分制成绩,具体功能是:如果用户输入的是非法字符或者不在合理区间内的数据(例如输入的是a,或者102,或-45等),则程序输出 Input error!,并允许用户重新输入,直到输入合法数据为止,并将其转换为5分制输出。

#include<stdio.h>
int main()
{
    char input[100];
    int score = 0;
    char grade;
    while(1){
        printf("Please input score:\n");
        gets(input);
        for(int tmp=0;input[tmp]!='\0';tmp++){
            if(input[tmp]>='0'&input[tmp]<='9'){
                score*=10;
                score+=(int)(input[tmp]-'0');
            } else{
                score=-1;
                break;
            }
        }
        if (score < 0 || score > 100){
            score=0;
            printf("Input error!\n");
        }
        else{
            break;
        }
    }
    if (score >= 90)
        grade = 'A';
    else if (score >= 80)
        grade = 'B';
    else if (score >= 70)
        grade = 'C';
    else if (score >= 60)
        grade = 'D';
    else
        grade = 'E';
    printf("grade:%c\n", grade);
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值