(2) 给出一个百分制成绩,要求输出成绩等级Excellent,Good,Middle,Passed,Failed。其中,90分以上为E

我写switch语句时如下,可就是运行不对。。求指导。。因为我是初学者,所以好多地方不懂,求解答。。谢谢。。#include<stdio.h>voidmain(){flo... 我写switch语句时如下,可就是运行不对。。求指导。。因为我是初学者,所以好多地方不懂,求解答。。谢谢。。#include<stdio.h>
void main()
{
float score;
char grade;
printf("请输入学生成绩:\n");
scanf("%f,&score");
while(score>100||score<0)
{
printf("Illegal\n");
}
switch((int)(score/10))
{
case 10:
case 9:printf("grade='Excellent'\n");break;
case 8:printf("grade='Good'\n");break;
case 7:printf("grade='Middle'\n");break;
case 6:printf("grade='Passed'\n");break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:printf("grade='failed'\n");
}
printf("成绩是%5.2f,等级是%s\n",score,grade);
}
展开
 我来答
陈宸911
2012-05-24
知道答主
回答量:29
采纳率:0%
帮助的人:14.7万
展开全部

#include<stdio.h>

void main()

{

    float score;

    char *grade[12];

    printf("请输入学生成绩:\n");

    scanf("%f",&score);

   while(score>100||score<0)

    {

        printf("Illegal\n");

    }

    switch((int)(score/10))

    {

        case 10:

        case 9:

*grade="Excellent";

break;

        case 8:

*grade="Good";

break;

        case 7:

*grade="Middle";

break;

        case 6:

*grade="Passed";

break;

        default:

            *grade="failed";

break;

    }

    printf("成绩是%5f,等级是%s\n",score,*grade);

}

问题有点多,我手拙改了改··

希望采纳~

xuwang092
2014-09-30 · TA获得超过174个赞
知道小有建树答主
回答量:119
采纳率:0%
帮助的人:118万
展开全部

scanf("%f,&score");这里引号写错了。。scanf("%f",&score); 

还有grade其实没有给值。最后输不出grade等级 

#include<stdio.h>
void main()
{
    float score;
    printf("请输入学生成绩:\n");
    scanf("%f",&score);
    if(score>100||score<0)
    {
        printf("Illegal\n");
        return;
    }
    switch((int)(score/10))
    {
        case 10:printf("成绩是%g,grade='Excellent'\n",score);break;
        case 9:printf("成绩是%g,grade='Excellent'\n",score);break;
        case 8:printf("成绩是%g,grade='Good'\n",score);break;
        case 7:printf("成绩是%g,grade='Middle'\n",score);break;
        case 6:printf("成绩是%g,grade='Passed'\n",score);break;
        
        default:printf("成绩是%g,grade='failed'\n",score);break;
    }
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
黑色星期天HOHO
2012-05-24 · 超过16用户采纳过TA的回答
知道答主
回答量:40
采纳率:100%
帮助的人:39.9万
展开全部
我把你程序稍微修改了下,编译能通过。你自己的程序出问题是因为定义的grade变量是字符类型(只能赋值一个字符如A、x、z),而你把Excellent这个字符串直接赋值给它肯定要报错。还有就是C语言里面的printf()输出语句是不允许进行赋值操作的..只能输出字符串常量和变量的值..
#include <stdio.h>
#include <string.h>
void main()
{
float score;
char grade[20];
printf("请输入学生成绩:\n");
scanf("%f",&score);
if((0<=score)&&(score<=100))
{
switch((int)(score/10))
{
case 10:
case 9:strcpy(grade,"Excellent");break;
case 8:strcpy(grade,"Good");break;
case 7:strcpy(grade,"Middle");break;
case 6:strcpy(grade,"Passed");break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:strcpy(grade,"failed");break;
}
printf("成绩:%5.2f\n等级:%s\n",score,grade);
}
else
{
printf("输入错误!\n");
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式