鱼C论坛

 找回密码
 立即注册
查看: 1668|回复: 6

[已解决]求助!看看这个switch语句哪里出问题了!

[复制链接]
发表于 2020-11-12 21:31:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<stdio.h>
int main()
{
int a,b;
scanf("%d",&a);
b=a/10;
printf("%d",b);
switch(b)
{
        case '9':printf("A\n");break;
        case '8':printf("B\n");break;
        case '7':printf("C\n");break;
        case '6':printf("D\n");break;
        default :printf("E\n");
}
return 0;
}
最佳答案
2020-11-12 22:42:02
本帖最后由 风过无痕1989 于 2021-1-4 10:33 编辑

由于输入的整数a,可以无节制,所以,第7行应该是取余运算
#include<stdio.h>
int main()
{
      int a,b;
      scanf("%d",&a);
      b = a % 10;                   // 正确的应该是取10的余数,而不是除以10
      printf("%d",b);
      switch(b)
      {
      case 9: printf("A\n"); break;
      case 8: printf("B\n"); break;
      case 7: printf("C\n"); break;
      case 6: printf("D\n"); break;
      default : printf("E\n");
      }
      return 0;
}

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-11-12 21:44:48 | 显示全部楼层
case 后面数字不要添加单引号,前后数据类型都不一样了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-12 22:01:40 | 显示全部楼层
本帖最后由 昨非 于 2020-11-13 08:32 编辑
#include<stdio.h>
int main()
{
        int a, b;
        scanf("%d", &a);
        b = a / 10;
        printf("%d", b);
        switch (b)              //这里b是整型,所以下面的case后也应该是整型常量,加''后就是字符了,去掉‘’就好了
        {
        case 9:printf("A\n"); break;
        case 8:printf("B\n"); break;
        case 7:printf("C\n"); break;
        case 6:printf("D\n"); break;
        default:printf("E\n");
        }
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-12 22:42:02 | 显示全部楼层    本楼为最佳答案   
本帖最后由 风过无痕1989 于 2021-1-4 10:33 编辑

由于输入的整数a,可以无节制,所以,第7行应该是取余运算
#include<stdio.h>
int main()
{
      int a,b;
      scanf("%d",&a);
      b = a % 10;                   // 正确的应该是取10的余数,而不是除以10
      printf("%d",b);
      switch(b)
      {
      case 9: printf("A\n"); break;
      case 8: printf("B\n"); break;
      case 7: printf("C\n"); break;
      case 6: printf("D\n"); break;
      default : printf("E\n");
      }
      return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-15 23:03:47 | 显示全部楼层
像风一样吹走了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-4 10:16:43 | 显示全部楼层
风过无痕1989 发表于 2020-11-12 22:42
由于输入的整数a,可以无节制,所以,第7行应该是取余运算

#include<stdio.h>
int main()
{
      int a,b;
      scanf("%d",&a);
      b = a % 10;                   // 正确的应该是取10的余数,而不是除以10
      printf("%d",b);             //printf(格式控制字符串,输出参值表),不用取地址符号&
      switch(b)
      {
      case 9: printf("A\n"); break;
      case 8: printf("B\n"); break;
      case 7: printf("C\n"); break;
      case 6: printf("D\n"); break;
      default : printf("E\n");
      }
      return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-4 10:32:36 | 显示全部楼层
//720907 发表于 2021-1-4 10:16
#include
int main()
{

多谢指出错误,这就修改
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 06:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表