这个程序错在哪里?初学者虚心请教.
题目是:输入一个百分制的学生成绩,然后把它转换成相应的'A','B','C','D','E'五个等级输出.其中90分以上为'A',80-89分为'B',70-79分为'C',60-69分为'D',60以下的为'E'.以给出一个程序,叫我们改错
程序如下:
#include<stdio.h>
main()
{
float score;
char grade;
print("please input a student's score:");
scanf("%f",score);
if(score>100||score<0)
{
printf("\n input error,try again!");
scanf("%f",score);
}
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;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:grade='E';break;
}
printf("score is %5.1f,score grade is %c\n",score,grade);
}
因为是初学者,所以改不完全,这个程序我已经修改过,不知道还有哪些地方不对,还请大家帮忙看一下
谢谢啊
----------------解决方案--------------------------------------------------------
以下是引用zc13792229在2007-4-5 17:52:01的发言:
题目是:输入一个百分制的学生成绩,然后把它转换成相应的'A','B','C','D','E'五个等级输出.其中90分以上为'A',80-89分为'B',70-79分为'C',60-69分为'D',60以下的为'E'.
以给出一个程序,叫我们改错
程序如下:
#include<stdio.h>
main()
{
float score;
char grade;
printf("please input a student's score:");
scanf("%f",&score);
if(score>100||score<0)
{
printf("\n input error,try again!");
scanf("%f",&score);
}
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;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:grade='E';break;
}
printf("score is %5.1f,score grade is %c\n",score,grade);
}
因为是初学者,所以改不完全,这个程序我已经修改过,不知道还有哪些地方不对,还请大家帮忙看一下
谢谢啊
题目是:输入一个百分制的学生成绩,然后把它转换成相应的'A','B','C','D','E'五个等级输出.其中90分以上为'A',80-89分为'B',70-79分为'C',60-69分为'D',60以下的为'E'.
以给出一个程序,叫我们改错
程序如下:
#include<stdio.h>
main()
{
float score;
char grade;
printf("please input a student's score:");
scanf("%f",&score);
if(score>100||score<0)
{
printf("\n input error,try again!");
scanf("%f",&score);
}
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;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:grade='E';break;
}
printf("score is %5.1f,score grade is %c\n",score,grade);
}
因为是初学者,所以改不完全,这个程序我已经修改过,不知道还有哪些地方不对,还请大家帮忙看一下
谢谢啊
细心~```
----------------解决方案--------------------------------------------------------
哦,谢咯谢咯
就是有点粗心
呵呵
----------------解决方案--------------------------------------------------------
回复:(zc13792229)这个程序错在哪里?初学者虚心请教...
#include<stdio.h>main()
{
float score;
char grade;
print("please input a student's score:");
scanf("%f",&score);
while(score>100||score<0) //保证输入的分数是正确的
{
printf("\n input error,try again!");
scanf("%f",&score);
}
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;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:grade='E';break;
}
printf("score is %5.1f,score grade is %c\n",score,grade);
}
----------------解决方案--------------------------------------------------------
谢谢谢谢
----------------解决方案--------------------------------------------------------
这个问题很典型,我发现很多初学者是这个问题!
----------------解决方案--------------------------------------------------------
注意switch(a)中a只能为int enum char
----------------解决方案--------------------------------------------------------