标题:switch语句
只看楼主
huyvht
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2020-10-17
结帖率:75%
已结贴  问题点数:20 回复次数:11 
switch语句
#include <stdio.h>
int main()
{
    char grade;
    scanf("%c",&grade);
    printf("score");
    switch(grade)
    {
    case'A':printf("90~100\n");break;
    case'B':printf("80~89\n");break;
    case'C':printf("70~79\n");break;
    case'D':printf("60~69\n");break;
    case'E':printf("0~60\n");break;
    default:printf("enter data error\n");
    }
return 0;
}

请问是哪里出错了?
搜索更多相关主题的帖子: case switch break printf 语句 
2020-11-08 22:41
纯蓝之刃
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:76
帖 子:554
专家分:3690
注 册:2019-7-29
得分:4 
你输入了什么,预计输出了什么,实际输出了什么,你要提供一下。要不谁知道有什么问题。程序能编译成功,那这个程序就是正确的,你只能说程序设计的不符合你的预期,不能说他错了。

一沙一世界,一花一天堂。无限掌中置,刹那成永恒。
2020-11-09 08:08
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:4 
回复 2楼 纯蓝之刃
不管输入如何,起码得输出个“score”吧。
所以我猜出,题主可能根本不会操作计算机,他给的 源代码 和 运行时截图 根本不是同一个程序的。
2020-11-09 09:08
apull
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:三体星系
等 级:版主
威 望:185
帖 子:1404
专家分:8479
注 册:2010-3-16
得分:4 
同意楼上
2020-11-09 13:57
风过无痕1989
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:8
帖 子:228
专家分:1050
注 册:2020-7-17
得分:4 
回复 楼主 huyvht
首先,可以肯定的是你贴错图了,程序中没有MAX,图中怎么有呢?

其次,我在外旅游,没法用我自己的电脑验证你的程序,但将你的程序贴到咱们论坛的“在线编程” https://www.bccn.net/run/ 中运行,程序是没有问题的,输入大写字母A,输出对应的是90—100
2020-11-09 16:42
jyxiasf
Rank: 2
等 级:论坛游民
威 望:1
帖 子:15
专家分:21
注 册:2019-9-3
得分:4 
呵呵,程序本身肯定没问题。肯定是看错输出窗口了
2020-11-09 19:14
huyvht
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2020-10-17
得分:0 
贴错图了
是这张图


[此贴子已经被作者于2020-11-9 21:51编辑过]

2020-11-09 21:50
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
回复 7楼 huyvht
程序代码:
#include <stdio.h>

int main( void )
{
    unsigned score;
    if( scanf("%u",&score)!=1 || score>100 )
    {
        puts( "enter data error" );
        return 1;
    }

    char grade;
    switch( score/10 )
    {
    default: grade = 'E'; break;
    case  6: grade = 'D'; break;
    case  7: grade = 'C'; break;
    case  8: grade = 'B'; break;
    case  9:
    case 10: grade = 'A'; break;
    }
    printf( "grade: %c\n", grade );
}
2020-11-10 08:48
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
回复 7楼 huyvht
我觉得你又混乱了,
从你的代码看,你想输入 等级,输出 得分段;
从你的截图看,你想输入 得分,输出 等级。
你到底是想要什么功能?

程序代码:
#include <stdio.h>

int main( void )
{
    char grade;
    if( scanf("%c",&grade)!=1 || grade<'A' || grade>'E' )
    {
        puts( "enter data error" );
        return 1;
    }

    switch( grade )
    {
    case 'A': puts("score 90~100"); break;
    case 'B': puts("score 80~89"); break;
    case 'C': puts("score 70~79"); break;
    case 'D': puts("score 60~69"); break;
    case 'E': puts("score 0~59"); break;
    }
}
2020-11-10 09:08
huyvht
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2020-10-17
得分:0 
回复 9楼 rjsp
我想输入分数得到等级
unsigned score;
    if( scanf("%u",&score)!=1 || score>100 )
    {
        puts( "enter data error" );
        return 1;
    }
这一段是什么意思?
2020-11-10 22:04



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-503830-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.737411 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved