c语言成绩分级
发布网友
发布时间:2022-05-12 00:12
我来回答
共3个回答
热心网友
时间:2023-07-26 02:27
a=M/10; /*开关值是一个整形数*/
switch(a)
{
case 10 : /* '10' ; 应去掉单引和分号*/
case 9 :printf("D\n");break;
case 8 :printf("C\n");break;
case 7 : /*连续的键值,相同的处理,可以这样简化*/
case 6 printf("B\n");break ;
case 5 :
case 4 :
case 3 :
case 2 :
case 1 : /*连续的键值,相同的处理,可以这样简化*/
case 0 :printf("A\n");break;
}
注:本程序中EOF为结束标志位,只要你键入的值不等于-1,就可实现连续查等级。
热心网友
时间:2023-07-26 02:27
#include <stdio.h>
int main()
{
int M,a;
scanf("%d",&M); //可以改成这样
while(0<=M&&M<=100)
{
a=M/10;
switch(a)
{
case 10:printf("D\n");break; //10没有''
case 9:printf("D\n");break;
case 8:printf("C\n");break;
case 7:printf("B\n");break;
case 6:printf("B\n");break;
case 5:printf("A\n");break;
case 4:printf("A\n");break;
case 3:printf("A\n");break;
case 2:printf("A\n");break;
case 1:printf("A\n");break;
case 0:printf("A\n");break;
}
scanf("%d",&M);
}
system("pause");
return 0;
}
追问如果需要用EOF怎么加入
追答while(scanf("%d",&M)!=EOF+1)
EOF 是-1
而scanf函数返回的是读取的数字的个数 所以出错时返回0
所以E0F加1
热心网友
时间:2023-07-26 02:28
在while语句结束之前return做什么?scanf读取的应该是键盘输入吧,不用判断eof。从代码上看应该是想执行一次以后自动退出,那么while就没有必要写了。如果用的是windows下的编译器需要保留输出,在可以在最后加while或者scanf等待