c语言switch,求答疑!

输入成绩得等级
输入等级得成绩
怎么用switch获得
求!求答疑!

#include<stdio.h>
int main()
{
    int score;
    puts("请输入分数:");
    scanf("%d",&score);
    
    switch(score/10){
        case 0:
        case 1:
        case 2:
        case 3:
        case 4:
        case 5:
             puts("成绩等级为D");
             break;
        case 6:
        case 7:
             puts("成绩等级为C");
             break;
        case 8:
        case 9:
            puts("成绩等级为B");
            break;
        case 10:
            puts ("成绩等级为A");        
            break;
            default:
            puts ("成绩无效,请重新输入");      
    }
    return 0;
}

https://blog.csdn.net/weixin_60282135/article/details/129477659

输入成绩得等级,反过来更简单了,这里提供输入成绩得等级的代码,供参考:

#include <stdio.h>
int main()
{
    int score = 101;
    scanf("%d", &score);
    switch (1*(score >=90 && score <= 100)+
            2*(score >=80 && score < 90)  +
            3*(score >=70 && score < 80)  +
            4*(score >=60 && score < 70)  +
            5*(score >=0  && score < 60))
    {
        case 1:printf("A");break;
        case 2:printf("B");break;
        case 3:printf("C");break;
        case 4:printf("D");break;
        case 5:printf("E");break;
        default:printf("Error!");
    }
    return 0;
}
 

输入等级得到成绩范围:

#include <stdio.h>
int main()
{
    char  s;
    scanf("%c", &s);
    switch (1*(s == 'A')+
            2*(s == 'B')+
            3*(s == 'C')+
            4*(s == 'D')+
            5*(s == 'E'))
    {
        case 1:printf("score >=90 && score <= 100)");break;
        case 2:printf("score >=80 && score < 90");   break;
        case 3:printf("score >=70 && score < 80");   break;
        case 4:printf("score >=60 && score < 70");   break;
        case 5:printf("score >=0  && score < 60");   break;
        default:printf("Error!");
    }
    return 0;
}

*3、用Switch语句实现:输入等级则输出对应的分数段。已知A级为90-100分,B级为80-89分,
C级为70-79分,D级为60-69分,E级为60分以下。例如,输入A,则输出:90-100分*/
#include <stdio.h>
int main(void){
    
    char op;
    int a,b;
    printf("输入等级:");
    scanf("%c",&op);
    getchar();
    
    switch(op){
        case 'A':a=90,b=100;break;
        case 'B':a=80,b=89;break;
        case 'C':a=70,b=79;break;
        case 'D':a=60,b=69;break;
        case 'E':a=0,b=59;break;
        default: a=-1; break;
    }
    if(a==-1){
        printf("无效等级!");
    }else{
        printf("分数段:%d-%d",a,b);
    }
    
    
    return 0;
}

----------------------------------------------------------
#include <stdio.h>
//输入成绩得等级用Switch语句实现:输入等级则输出对应的分数段。已知A级为90-100分,B级为80-89分,
//C级为70-79分,D级为60-69分,E级为60分以下。例如,输入A,则输出:90-100分
//怎么用switch获得的 
int main(void)
{
    int scores;
    int option=0;
    char grade;
    printf("Enter scores:\n");
    scanf("%d",&scores);
    if(scores>=90&&scores<=100){
        option=5;
    }else if(scores>=80&&scores<90){
        option=4;
    }else if(scores>=70&&scores<80){
        option=3;
    }else if(scores>=60&&scores<70){
        option=2;
    }else if(scores>=0&&scores<60){
        option=1;
    }
    
    switch(option){
        case 1:grade='E';break;
            case 2:grade='D';break;
                case 3:grade='C';break;
                    case 4:grade='B';break;
                        case 5:grade='A';break;
                        default:printf("无效成绩!");break; 
    }
    
    
    printf("grade:\n%c",grade);
    
    return 0;
 } 

*3、用Switch语句实现:输入等级则输出对应的分数段。已知A级为90-100分,B级为80-89分,
C级为70-79分,D级为60-69分,E级为60分以下。例如,输入A,则输出:90-100分*/
#include <stdio.h>
int main(void){
    
    char op;
    int a,b;
    printf("输入等级:");
    scanf("%c",&op);
    getchar();
    
    switch(op){
        case 'A':a=90,b=100;break;
        case 'B':a=80,b=89;break;
        case 'C':a=70,b=79;break;
        case 'D':a=60,b=69;break;
        case 'E':a=0,b=59;break;
        default: a=-1; break;
    }
    if(a==-1){
        printf("无效等级!");
    }else{
        printf("分数段:%d-%d",a,b);
    }
    
    
    return 0;
}

----------------------------------------------------------
#include <stdio.h>
//输入成绩得等级用Switch语句实现:输入等级则输出对应的分数段。已知A级为90-100分,B级为80-89分,
//C级为70-79分,D级为60-69分,E级为60分以下。例如,输入A,则输出:90-100分
//怎么用switch获得的 
int main(void)
{
    int scores;
    int option=0;
    char grade;
    printf("Enter scores:\n");
    scanf("%d",&scores);
    if(scores>=90&&scores<=100){
        option=5;
    }else if(scores>=80&&scores<90){
        option=4;
    }else if(scores>=70&&scores<80){
        option=3;
    }else if(scores>=60&&scores<70){
        option=2;
    }else if(scores>=0&&scores<60){
        option=1;
    }
    
    switch(option){
        case 1:grade='E';break;
            case 2:grade='D';break;
                case 3:grade='C';break;
                    case 4:grade='B';break;
                        case 5:grade='A';break;
                        default:printf("无效成绩!");break; 
    }
    
    
    printf("grade:\n%c",grade);
    
    return 0;
 } 

答案来自chatgpt,如果答案对您有帮助请采纳
在C语言中,可以使用switch语句来根据输入的成绩得到对应的等级,或者根据输入的等级得到对应的成绩。下面是一个简单的示例代码:

#include <stdio.h>

int main() {
    int score;
    char grade;

    printf("请输入成绩:");
    scanf("%d", &score);

    // 使用switch语句根据成绩得到等级
    switch (score / 10) {
        case 10:
        case 9:
            grade = 'A';
            break;
        case 8:
            grade = 'B';
            break;
        case 7:
            grade = 'C';
            break;
        case 6:
            grade = 'D';
            break;
        default:
            grade = 'E';
            break;
    }

    printf("对应的等级是:%c\n", grade);

    // 使用switch语句根据等级得到成绩
    printf("请输入等级:");
    scanf(" %c", &grade);

    switch (grade) {
        case 'A':
        case 'a':
            score = 90;
            break;
        case 'B':
        case 'b':
            score = 80;
            break;
        case 'C':
        case 'c':
            score = 70;
            break;
        case 'D':
        case 'd':
            score = 60;
            break;
        default:
            score = 0;
            break;
    }

    printf("对应的成绩是:%d\n", score);

    return 0;
}

在上面的示例代码中,使用了switch语句来根据成绩和等级进行条件判断,并将对应的等级或成绩赋值给相应的变量。注意,在使用switch语句时,需要使用break语句来跳出switch语句,避免多个case语句被执行。同时,可以使用switch语句来处理不同情况下的默认值。在输入字符时,使用空格键来忽略输入缓冲区中的换行符或空格,以避免错误输入。

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7526272
  • 你也可以参考下这篇文章:C语言 switch语句
  • 同时,你还可以查看手册:c语言-switch 中的内容
  • 除此之外, 这篇博客: C语言程序设计第五版 谭浩强 第四章 课后习题 答案中的 (2) 使用switch语句编写程序。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    解题思路: 与第一题思路没有太大差别,区别在于switch语句的case子句中需要是一个常量整数,并且switch中若子句中没有break将循序向下执行,直到遇到break才会跳出switch语句,如果这时候将利润除以10w,则得到09的数字,其中0表示小于10w,1表示介于1020w,2、3表示介于2040w,4、5表示介于4060w,6、7、8、9表示介于60~100w,否则就是大于100w

    答案:

    #include <stdio.h>
    int main()
    {
    	double I, salary = 0;
    	printf("enter performance:");
    	scanf_s("%lf", &I);
    	if (I < 0) {
    		printf("请输入一个正数\n");
    		system("pause");
    		return -1;
    	}
    	double salary1 = 100000 * 0.1;//大于100000时0~100000的奖金
    	double salary2 = (200000 - 100000) * 0.075 + salary1;//大于200000时0~20万的奖金
    	double salary3 = (400000 - 200000) * 0.05 + salary2;//大于400000时0~40万的奖金
    	double salary4 = (600000 - 400000) * 0.03 + salary3;//大于600000时0~60万的奖金
    	double salary5 = (1000000 - 600000) * 0.015 + salary4;//大于1000000时0~100万的奖金
    	int grade = I / 100000;
    	switch(grade) {
    		case 0:
    			salary = I * 0.1; break;
    		case 1:
    			salary = salary1 + (I - 100000) * 0.075; break;
    		case 2://会顺序执行到下一个breakcase 3:
    			salary = salary2 + (I - 200000) * 0.05; break;
    		case 4:
    		case 5:
    			salary = salary3 + (I - 400000) * 0.03; break;
    		case 6:
    		case 7:
    		case 8:
    		case 9:
    			salary = salary4 + (I - 600000) * 0.015; break;
    		default:
    			salary = salary5 + (I - 1000000) * 0.01; break;
    	}
    	printf("salary:%f\n", salary);
    	system("pause");
    	return 0;
    }
    

    c语言谭浩强课后答案

  • 您还可以看一下 贺利坚老师的C语言及程序设计初步课程中的 用switch语句实现多分支结构小节, 巩固相关知识点

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