注册 登录
编程论坛 C语言论坛

C语言 输入一个汉字五分制成绩(优/良/中/及格/不及格),输出汉字五分制成绩对应的百分制成绩范围(90-100/80-89/70-79/60-69/0-59)

ojyy 发布于 2021-11-10 22:48, 1740 次点击
c语言
4 回复
#2
吹水佬2021-11-11 09:22
程序代码:
#include <stdio.h>
#include <string.h>

int main()
{
    char *an[5]={"","","","及格","不及格"};
    char *ad[5]={"90-100","80-89","70-79","60-69","0-59"};
    int i;
    char n[10];
    scanf("%s",n);
    for (i=0;i<5;++i)
    {
        if (strcmp(n,an[i])==0)
        {
            printf("%s %s\n", an[i],ad[i]);
            break;
        }
    }
    return 0;
}
#3
hrpzcf2021-11-11 10:41
初级版本
程序代码:
#include <stdio.h>
#include <string.h>

int main(void)
{
    char *f;
    char val[10] = {0};
    while (1) // Ctrl+C退出
    {
        printf("五分制成绩(优/良/中/及格/不及格):\n");
        if (fgets(val, 10, stdin))
        {
            if (f = strchr(val, '\n'))
                *f = '\0';
            else
                while (getchar() != '\n') //清空缓冲区
                    ;
            if (!strcmp(val, ""))
                printf("成绩:90-100\n");
            else if (!strcmp(val, ""))
                printf("成绩:80-89\n");
            else if (!strcmp(val, ""))
                printf("成绩:70-79\n");
            else if (!strcmp(val, "及格"))
                printf("成绩:60-69\n");
            else if (!strcmp(val, "不及格"))
                printf("成绩:0-59\n");
            else
                printf("输入有误,重新输入\n");
        }
        else
        {
            printf("输入读取失败\n");
            break;
        }
    }
    return 0;
}
#4
ojyy2021-11-11 11:39
回复 2楼 吹水佬
谢谢大佬! 我还有一个问题,如果是用sprintf函数,不用指针该怎样写呢?
#5
吹水佬2021-11-11 11:42
以下是引用ojyy在2021-11-11 11:39:22的发言:

谢谢大佬! 我还有一个问题,如果是用sprintf函数,不用指针该怎样写呢?

char buf[100];
sprintf(buf,......);
1