当前位置: 代码迷 >> C语言 >> 这个程序错在哪里?初学者虚心请教.
  详细解决方案

这个程序错在哪里?初学者虚心请教.

热度:310   发布时间:2007-04-05 17:52:01.0
这个程序错在哪里?初学者虚心请教.
题目是:输入一个百分制的学生成绩,然后把它转换成相应的'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);
}


因为是初学者,所以改不完全,这个程序我已经修改过,不知道还有哪些地方不对,还请大家帮忙看一下
谢谢啊
搜索更多相关的解决方案: score  虚心  

----------------解决方案--------------------------------------------------------
以下是引用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);
}


因为是初学者,所以改不完全,这个程序我已经修改过,不知道还有哪些地方不对,还请大家帮忙看一下
谢谢啊

细心~```


----------------解决方案--------------------------------------------------------

哦,谢咯谢咯
就是有点粗心
呵呵


----------------解决方案--------------------------------------------------------
回复:(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
----------------解决方案--------------------------------------------------------
  相关解决方案