鱼C论坛

 找回密码
 立即注册
查看: 2522|回复: 8

这个case语句怎么回事啊啊啊啊啊啊啊啊啊啊!!!!

[复制链接]
发表于 2014-4-19 21:14:26 | 显示全部楼层 |阅读模式
5鱼币
  1. #include <stdio.h>
  2. #define a1 "一马当先"
  3. #define a2 "二龙腾飞"
  4. #define a3 "三阳开泰"
  5. #define a4 "四季平安"
  6. #define a5 "五福临门"
  7. #define a6 "六六大顺"
  8. #define a7 "七星高照"
  9. #define a8 "八面来风"
  10. #define a9 "九九归一"
  11. #define a10 "十全十美"


  12. int main(void)
  13. {
  14.         int num;

  15.         printf("请输入1 - 10 之间的任意一个数: \n");
  16.         while(scanf("%d",&num)==1)
  17.         {
  18.                 switch(num);
  19.                 {
  20.                 case '1':
  21.                         printf("%d\n", 1);
  22.                         break;
  23.                 case '2':
  24.                         printf("%d\n", 2);
  25.                         break;
  26.                 case '3':
  27.                         printf("%d\n", 3);
  28.                         break;
  29.                 case '4':
  30.                         printf("%d\n", 4);
  31.                         break;
  32.                 case '5':
  33.                         printf("%d\n", 5);
  34.                         break;
  35.                 case '6':
  36.                         printf("%d\n", 6);
  37.                         break;
  38.                 case '7':
  39.                         printf("%d\n", 7);
  40.                         break;
  41.                 case '8':
  42.                         printf("%d\n", 8);
  43.                         break;
  44.                 case '9':
  45.                         pritnf("%d\n", 9);
  46.                         break;
  47.                 }
  48.         }
  49.         getchar();
  50.         getchar();
  51.         return(0);
  52. }
复制代码
有一个报错消息,怎么回事啊啊啊啊啊啊!!!
报错消息是 “illegal case”

最佳答案

查看完整内容

case 后可以是字符 也可以是数字 看你前面定义的是char 还是int scanf("%d",&num)返回的是正确赋值给变量的个数,==1可以不用,因为每次你输入一个数就会成功赋值给变量num,scanf的返回值永远是1,当你输入一个并不是数字的数时,比如a,就会跳出while循环 define 定义的时字符 打印时应该以%s的形式打印
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2014-4-19 21:14:27 | 显示全部楼层
case 后可以是字符  也可以是数字  看你前面定义的是char 还是int
scanf("%d",&num)返回的是正确赋值给变量的个数,==1可以不用,因为每次你输入一个数就会成功赋值给变量num,scanf的返回值永远是1,当你输入一个并不是数字的数时,比如a,就会跳出while循环
define 定义的时字符  打印时应该以%s的形式打印
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2014-4-19 21:48:17 | 显示全部楼层
switch(num);
这个后面不能有分号
第48行的printf打错了!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2014-4-19 21:55:07 | 显示全部楼层
#include <stdio.h>
#define a1 "一马当先"
#define a2 "二龙腾飞"
#define a3 "三阳开泰"
#define a4 "四季平安"
#define a5 "五福临门"
#define a6 "六六大顺"
#define a7 "七星高照"
#define a8 "八面来风"
#define a9 "九九归一"
#define a10 "十全十美"


int main(void)
{
        int num;

        printf("请输入1 - 10 之间的任意一个数: \n");
                scanf("%d", &num);
                switch(num)
                {
                case '1':
                        printf("%d\n", num);
                        break;
                case '2':
                        printf("%d\n", num);
                        break;
                case '3':
                        printf("%d\n", num);
                        break;
                case '4':
                        printf("%d\n", num);
                        break;
                case '5':
                        printf("%d\n", num);
                        break;
                case '6':
                        printf("%d\n", num);
                        break;
                case '7':
                        printf("%d\n", num);
                        break;
                case '8':
                        printf("%d\n", num);
                        break;
                case '9':
                        printf("%d\n", num);
                        break;
        }
        return(0);
}     switch 后面不该有分号。 另有一处printf拼写错误  一起加油
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2014-4-19 22:07:57 | 显示全部楼层
貌似跳不出while(scanf("%d",&num)==1)循环
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2014-4-19 22:27:41 | 显示全部楼层
本帖最后由 风雪幻林 于 2014-4-19 22:31 编辑

#include <stdio.h>
#define a1 "一马当先"
#define a2 "二龙腾飞"
#define a3 "三阳开泰"
#define a4 "四季平安"
#define a5 "五福临门"
#define a6 "六六大顺"
#define a7 "七星高照"
#define a8 "八面来风"
#define a9 "九九归一"
#define a10 "十全十美"


void main()
{
      int num;

        printf("请输入1 - 10 之间的任意一个数: \n");
      scanf("%d",&num);
        {
                switch(num)
                {
                case 1:
                       printf("%s\n", a1);
                        break;
                case 2:
                        printf("%s\n", a2);
                        break;
                case 3:
                        printf("%s\n", a3);
                        break;
                case 4:
                        printf("%s\n", a4);
                        break;
                case 5:
                        printf("%s\n", a5);
                        break;
                case 6:
                        printf("%s\n", a6);
                        break;
                case 7:
                        printf("%s\n", a7);
                        break;
                case 8:
                        printf("%s\n", a8);
                        break;
                case 9:
                        printf("%s\n", a9);
                        break;
                }
        }
        return(0);
}
case 不能用“单引号”
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2014-4-19 23:58:46 | 显示全部楼层
你这代码....... 错误真心不少 我随便改了下大概可以运行起来了
  1. #include <stdio.h>

  2. #define a1 "一马当先"
  3. #define a2 "二龙腾飞"
  4. #define a3 "三阳开泰"
  5. #define a4 "四季平安"
  6. #define a5 "五福临门"
  7. #define a6 "六六大顺"
  8. #define a7 "七星高照"
  9. #define a8 "八面来风"
  10. #define a9 "九九归一"
  11. #define a10 "十全十美"

  12. void cls();

  13. int main(void)
  14. {
  15.         char num;
  16. s:        printf("请输入1 - 10 之间的任意一个数: \n");
  17.         num = getchar();
  18.         switch(num)
  19.         {
  20.         case '1':
  21.                 printf("%s\n", a1);
  22.                 cls();
  23.                 goto s;       
  24.         case '2':
  25.                 printf("%s\n", a2);
  26.                 cls();
  27.                 goto s;       
  28.         case '3':
  29.                 printf("%s\n", a3);
  30.                 cls();
  31.                 goto s;       
  32.         case '4':
  33.                 printf("%s\n", a4);
  34.                 cls();
  35.                 goto s;       
  36.         case '5':
  37.                 printf("%s\n", a5);
  38.                 cls();
  39.                 goto s;       
  40.         case '6':
  41.                 printf("%s\n", a6);
  42.                 cls();
  43.                 goto s;       
  44.         case '7':
  45.                 printf("%s\n", a7);
  46.                 cls();
  47.                 goto s;       
  48.         case '8':
  49.                 printf("%s\n", a8);
  50.                 cls();
  51.                 goto s;       
  52.         case '9':
  53.                 printf("%s\n", a9);
  54.                 cls();
  55.                 goto s;       
  56.         default:
  57.                 printf("你的输入有误!\n");
  58.                 cls();
  59.                 goto s;               
  60.         }
  61.         return 0;
  62. }
  63. void cls()
  64. {
  65.         char ch;
  66.         while((ch = getchar())!='\n');
  67. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2014-4-20 19:11:25 | 显示全部楼层
#include <stdio.h>
#define a1 "一马当先"
#define a2 "二龙腾飞"
#define a3 "三阳开泰"
#define a4 "四季平安"
#define a5 "五福临门"
#define a6 "六六大顺"
#define a7 "七星高照"
#define a8 "八面来风"
#define a9 "九九归一"
#define a10 "十全十美"


int main(void)
{
        int num;

        printf("请输入1 - 10 之间的任意一个数: \n");
      
        scanf("%d",&num);

                switch(num)
                {
                case 1:
                        printf(a1);
                        break;
                case 2:
                        printf(a2);
                        break;
                case 3:
                        printf(a3);
                        break;
                case 4:
                        printf(a4);
                        break;
                case 5:
                        printf(a5);
                        break;
                case 6:
                        printf(a6);
                        break;
                case 7:
                        printf(a7);
                        break;
                case 8:
                        printf(a8);
                        break;
                case 9:
                        printf(a9);
                        break;
                }
      
        getchar();
   
        return(0);
}
不知道这是你要的么
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2014-4-28 15:58:01 | 显示全部楼层
printf打错了!  你编译 看看 提示啊
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-21 05:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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