怎么用c语言进行成绩等级划分a,b,c,d,e可以反复输出

可以同时输入三个数字进行划分等级的,不要输入一个就结束了,可以三个数字反复输出

你是需要获取3个分数,然后再同时输出其对应的等级吗?如果是的话,可以从输入获取3个分数存入数组后, 再用循环遍历数组3个元素值,然后判断输入其对应的等级即可。

代码如下:


#include <stdio.h>

int main(void){
    
    int scores[3]; // 这里定义存储3个分数成绩 
    
    // 从输入获取3个分数存入数组 
    printf("请输入三个分数:");
    scanf("%d%d%d",&scores[0],&scores[1],&scores[2]);
    
    int i=0;
    printf("成绩等级分别为:"); 
    // 使用循环遍历数组中存储的3个成绩,并输入其对应的等级 
    while(i<3){
        
        int score = scores[i];
        
        if(score>=90){
            printf("a ");
        }else if(score>=80){
            printf("b ");
        }else if(score>=70){
            printf("c ");
        }else if(score>=60){
            printf("d ");
        }else {
            printf("e "); 
        }
        
        i++;
    }
    
    return 0;
} 

img

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7533992
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:编写一个c程序,运行时输入a,b,c三个值,输出其中值最大者。
  • 除此之外, 这篇博客: 键盘输入语句和位运算中的 1. 请看下面的代码段,回答 a,b,c,d,e 结果是多少? 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    public static void main(String []args)
    {
    int a=1>>2; // 1 向右位移 2 位
    /* 这里就按一个直接推(int型一般是4个字节)
    0000 0001 右移动2位,溢出的不要并用符号位补,
    所以得到 0000 0000 (补码) 0的源码和补码一样,
    即输出 0
    */
    int b=-1>>2;//算术右移
    /* 原 1000 0001 反 1111 1110 负数的补码 = 它的反码 +1;
    补 1111 1111 右移动2位,溢出的不要并用符号位补, 
    得 1111 1111(补码)负数的反码 = 负数的补码 -1,
    1000 0000(反),源码1000 0001 ,即输出 -1
    */
    int c=1<<2;//算术左移
    int d=-1<<2;//
    int e=3>>>2;//无符号右移
    //a,b,c,d,e 结果是多少
    System.out.println("a="+a);
    System.out.println("b="+b);
    System.out.println("c="+c);
    System.out.println("d="+d);
    System.out.println("e="+e);
    }
    
    

    在这里插入图片描述

  • 以下回答来自chatgpt:

    我可以为您提供以下C语言代码实现成绩等级划分并重复输出a,b,c,d,e的功能:

    #include <stdio.h>
    
    void getLevel(int score) {
        char level;
        if (score < 0 || score > 100) {
            printf("输入错误,请重新输入\n");
            return;
        } else if (score >= 90) {
            level = 'a';
        } else if (score >= 80) {
            level = 'b';
        } else if (score >= 70) {
            level = 'c';
        } else if (score >= 60) {
            level = 'd';
        } else {
            level = 'e';
        }
        printf("成绩等级为%c\n", level);
    }
    
    int main() {
        int score;
        while (1) {
            printf("请输入成绩:");
            scanf("%d", &score);
            getLevel(score);
        }
        return 0;
    }
    

    这段代码通过循环不断获取用户输入的成绩,并调用名为getLevel()的函数对成绩进行判定,并输出对应的等级。如果输入的成绩超出0到100的范围,则输出错误提示。

    接下来给出函数getLevel()的实现。判定方式为:

    • 大于等于90分为a级别;
    • 大于等于80分为b级别;
    • 大于等于70分为c级别;
    • 大于等于60分为d级别;
    • 小于60分为e级别;
    • 如果输入的成绩超出0到100的范围,则提示输入错误。

    这个函数通过字符表示等级,使用printf()函数输出等级。

    希望这段代码和解释对您有所帮助!


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

把三个数放到一个一维数组里面,for循环里面用switch case语句