鱼C论坛

 找回密码
 立即注册
查看: 1832|回复: 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行应该是取余运算

  1. #include<stdio.h>
  2. int main()
  3. {
  4.       int a,b;
  5.       scanf("%d",&a);
  6.       b = a % 10;                   // 正确的应该是取10的余数,而不是除以10
  7.       printf("%d",b);
  8.       switch(b)
  9.       {
  10.       case 9: printf("A\n"); break;
  11.       case 8: printf("B\n"); break;
  12.       case 7: printf("C\n"); break;
  13.       case 6: printf("D\n"); break;
  14.       default : printf("E\n");
  15.       }
  16.       return 0;
  17. }
复制代码

本帖被以下淘专辑推荐:

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-11-12 21:44:48 | 显示全部楼层
case 后面数字不要添加单引号,前后数据类型都不一样了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

由于输入的整数a,可以无节制,所以,第7行应该是取余运算

  1. #include<stdio.h>
  2. int main()
  3. {
  4.       int a,b;
  5.       scanf("%d",&a);
  6.       b = a % 10;                   // 正确的应该是取10的余数,而不是除以10
  7.       printf("%d",b);
  8.       switch(b)
  9.       {
  10.       case 9: printf("A\n"); break;
  11.       case 8: printf("B\n"); break;
  12.       case 7: printf("C\n"); break;
  13.       case 6: printf("D\n"); break;
  14.       default : printf("E\n");
  15.       }
  16.       return 0;
  17. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-15 23:03:47 | 显示全部楼层
像风一样吹走了
小甲鱼最新课程 -> https://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;
}
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

多谢指出错误,这就修改
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-3 04:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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