C语言中switch结构的使用
发布网友
发布时间:2022-04-19 10:54
我来回答
共4个回答
热心网友
时间:2023-01-27 07:53
#include <stdio.h>
void main ()
{
int s=0,n=0;
printf("__________________________\n");
printf("Score differentiate system\n");
printf("--------------------------\n");
printf("Give me the score of the student!\n");
printf("WARNING:Score between 0 and 100!\n");
printf("SCORE:"); scanf("%d",&s);
while(s!=-1)
{
if (s<0||s>100)
{
printf("Warning:Illegal Scanf!\n");
}
else
{
n=s/10;
switch(n)
{
case 10 :
printf("Range:A\n");
break;
case 9 :
printf("Range:A\n");
break;
case 8 :
printf("Range:B\n");
break;
case 7 :
printf("Range:C\n");
break;
case 6 :
printf("Range:D\n");
break;
default:
printf("Range:E\n");
break;
}
}
printf("SCORE:");
scanf("%d",&s);
}
system("pause");
}
热心网友
时间:2023-01-27 09:11
case (c>=90 && c<=100):
case后面的必须是一个常量。
你这个可以先将成绩除以10,再用switch
#include "stdio.h"
void main()
{
char c; /*这里别用char,改成:int c,d;*/
scanf("%c",&c); /*这一句也改成scanf("%d",&c);最好前面再加一句,printf("请输入成绩:"); 在这句后面加一句d=c/10;*/
switch(c) /*然后switch里面用d来判断,switch(d)*/
{
case (c>=90 && c<=100):printf("成绩的等级为:A.\n");
break; /*改成: case (10):
case (9):printf("成绩的等级为:A.\n");break;
case (c>=80 && c<=89):printf("成绩的等级为:B.\n");
break; /*改成:case (8):printf("成绩的等级为:B.\n"); break;
}
}
因为90到100之间的数经过除以10再取整以后就变成了9;100/10等于10,又因为case调用同一个语句的时候允许就在最后一个语句写上那个语句,而将前面的那几个省略掉,所以case (10):后面的就省掉了,当然写上也不会错。
你的补充的那个,你可以把它分开表示,就像我给你弄的那个case (c>=90 && c<=100):printf("成绩的等级为:A.\n");
break; /*改成: case (10):
case (9):printf("成绩的等级为:A.\n");break;
虽然有点纠缠不清的感觉,但是希望对解决你的疑问有一定的帮助,呵呵。。。
热心网友
时间:2023-01-27 10:46
因为case后面不能接范围,也就是说case后面是一个确实固定的常量.用下面的方法比较好,
#include<stdio.h>
int main()
{
int code;
printf("输入成绩\n");
scanf("%d",&code);
if(code<=100&&code>=90) printf("*\n");
else if(code<=89&&code>=80)printf("B级\n");
else if(code<=79&&code>=70)printf("C级\n");
else if(code<=69&&code>60)printf("D级\n");
else (code<60)printf("E级\n");
return 0;
}
你可以先把范围用字母或常量代替 ,再用switch语句追问if else的语句我会啊,但是我们老师要求我们用switch结构.....
热心网友
时间:2023-01-27 12:37
因为case后面不能接范围,也就是说case后面是一个确实固定的常量.用下面的方法比较好,
#include
int
main()
{
int
code;
printf("输入成绩\n");
scanf("%d",&code);
if(code<=100&&code>=90)
printf("*\n");
else
if(code<=89&&code>=80)
printf("B级\n");
else
if(code<=79&&code>=70)
printf("C级\n");
else
if(code<=69&&code>60)
printf("D级\n");
else
(code<60)
printf("E级\n");
return
0;
}
你可以先把范围用字母或常量代替
,再用switch语句