编一程序,对于给定的一个百分制成绩,输出相应的五分制成绩。(用switch语句实现)o


#include
 int main()
 {
     int score,t=0;
     printf("input score:\n");
     scanf("%d",&score);
     if(score>100 || score<0){
        printf("error");
     }
     t=score/10;
     switch(t)
     {
         case 10:
         case 9:printf("A");break;
         case 8:printf("B");break;
         case 7:printf("C");break;
         case 6:printf("D");break;
         default:printf("E");break;
     }
     return 0;
 }

程序编译有问题吗?还是有什么其他的更改需求?

  • 你可以看下这个问题的回答https://ask.csdn.net/questions/7512921
  • 你也可以参考下这篇文章:C语言-编写程序,根据输入的学生成绩给出相应的等级,大于或等于90分以上的等级为A,60分以下的等级为E,其余每10分为一个等级。(switch语句)
  • 除此之外, 这篇博客: 小白学C语言必看教程!中的 switch语句 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • switch(整型变量或字符型变量)
    {
    case 常量1:语句1break;
    case 常量2:语句2break;
    case 常量3:语句3break;
    
    case 常量n:语句n;break;
    default:语句n+1;break;
    }
    
    

    switch语句指令的意思是switch()括号里面的变量如果是常量1 ,就执行语句1,如果是常量2,就执行语句2,如果都不是就执行最后那一行的语句。

    例 1:某课成绩原为 A、B、C、D 四个等级,现要将其转成百分制分数段,规则是:A 等转成 85~100,B 等转成 70~84,C 等转成60~69,D 等转成<60。请编一程序,成绩等级由键盘输入,输出分数段。

    #include<stdio.h>
    int main()
    {
     char dengji;
     scanf(%c”,&dengji);
     switch(dengji)
     {
     case ‘A’:printf(“该生分数为 85~100\n”);break;
     case ‘B’:printf(“该生分数为 70~84\n”);break;
     case ‘C’:printf(“该生分数为 60~69\n”);break;
     case ‘D’:printf(“该生分数为<60\n”);break;
     default:printf(“该生的等级输得不对!\n”);break;
     }
     return 0;
    }
    

    例 2:某课成绩原为 A、B、C、D 四个等级,现要将其转成百分制分数段,规则是:A 等、B 等转成 70~100,C 等、D 等转成<70。请编一程序,成绩等级由键盘输入,输出分数段。

    #include<stdio.h>
    int main()
    {
     char dengji;
     scanf(%c”,&dengji);
     switch(dengji)
     {
     case ‘A’:
     case ‘B’:printf(“该生分数为 70~100\n”);break;
     case ‘C’:
     case ‘D’:printf(“该生分数为<70\n”);break;
     default:printf(“该生的等级输得不对!\n”);break;
     }
     return 0;
    }
    #上下结果一样的时候,上面的可以不写省略,比如成绩为A或者是B 的时候输出的语句是一样的,所以可以省略A的不写。
    

    例 3:某课成绩原为百分制,现要将其转成等级,规则是:90 分以上为 A、80~89 分为 B、70~79 分为 C、60~69 分为 D、60 分以下为 E。请编一程序,分数由键盘输入,输出等级。

    #include<stdio.h>
    int main()
    {
     double fenshu;
     printf(“请输入分数:”);
     scanf(%lf”,&fenshu);
    switch((int)(fenshu/10))
     {
     case 10:
     case 9:printf(“该生等级为 A\n”);break;
     case 8:printf(“该生等级为 B\n”);break;
     case 7:printf(“该生等级为 C\n”);break;
     case 6:printf(“该生等级为 D\n”);break;
     case 5:
     case 4:
     case 3:
     case 2:
     case 1:
     case 0:printf(“该生等级为 E\n”);break;
     default:printf(“你特么输的是成绩?!\n”);break;
     }
     return 0;
    }