2862593577 发表于 2020-3-6 13:40:14

这程序哪里错了?

#include <stdio.h>
void main()
{
        int a;//整数型的同学学号输入
        printf("***********开始*********");
        printf("请输入a的学号");
        scanf_s("%d", &a);
        printf("学号姓名/ 学生名字");
        if (a > 5 || a < 1) {
                printf("error\n");
                return;
        }
        printf("%3d\t\t", a);
        switch (a)
        {
        case 1:printf("小明\n"); break;
        case 2:printf("小红\n"); break;
        case 3:printf("张三\n"); break;
        case 4:printf("李四\n"); break;
        case 5:printf("小九\n"); break;
        default:printf("本班没有这个同学\n");
        }
        printf("********结束**********\n");
       


        }
            为什么编译错误呢????

zltzlt 发表于 2020-3-6 13:41:40

用 scanf 就可以了

#include <stdio.h>
void main()
{
    int a; //整数型的同学学号输入
    printf("***********开始*********");
    printf("请输入a的学号");
    scanf("%d", &a);
    printf("学号姓名/ 学生名字");
    if (a > 5 || a < 1)
    {
      printf("error\n");
      return;
    }
    printf("%3d\t\t", a);
    switch (a)
    {
    case 1:
      printf("小明\n");
      break;
    case 2:
      printf("小红\n");
      break;
    case 3:
      printf("张三\n");
      break;
    case 4:
      printf("李四\n");
      break;
    case 5:
      printf("小九\n");
      break;
    default:
      printf("本班没有这个同学\n");
    }
    printf("********结束**********\n");
}

2862593577 发表于 2020-3-6 13:43:08

zltzlt 发表于 2020-3-6 13:41
用 scanf 就可以了

还是错误的

2862593577 发表于 2020-3-6 13:49:23

2862593577 发表于 2020-3-6 13:43
还是错误的

还是编译错误啊

qiuyouzhi 发表于 2020-3-6 13:53:27

2862593577 发表于 2020-3-6 13:49
还是编译错误啊

我这里没有问题啊,你这样试试:
#include <stdio.h>
int main()
{
         int a;//整数型的同学学号输入
         printf("***********开始*********");
         printf("请输入a的学号");
         scanf_s("%d", &a);
         printf("学号姓名/ 学生名字");
         if (a > 5 || a < 1) {
               printf("error\n");
               return;
         }
         printf("%3d\t\t", a);
         switch (a)
         {
         case 1:printf("小明\n"); break;
         case 2:printf("小红\n"); break;
         case 3:printf("张三\n"); break;
         case 4:printf("李四\n"); break;
         case 5:printf("小九\n"); break;
         default:printf("本班没有这个同学\n");
         }
         printf("********结束**********\n");
         return 0;
         


         }

2862593577 发表于 2020-3-6 13:56:51

qiuyouzhi 发表于 2020-3-6 13:53
我这里没有问题啊,你这样试试:

这个可以了,为什么第一个程序不行呀?

qiuyouzhi 发表于 2020-3-6 13:57:27

2862593577 发表于 2020-3-6 13:56
这个可以了,为什么第一个程序不行呀?

可能是第一个程序没有返回值吧

2862593577 发表于 2020-3-6 14:00:09

qiuyouzhi 发表于 2020-3-6 13:57
可能是第一个程序没有返回值吧

if (a > 5 || a < 1) {
                printf("error\n");
                return 0;
        }
这块表示什么,我不懂?

qiuyouzhi 发表于 2020-3-6 14:01:40

2862593577 发表于 2020-3-6 14:00
if (a > 5 || a < 1) {
                printf("error\n");
                return 0;


如果a的值大于5或者小于1就打印'error!'并退出

2862593577 发表于 2020-3-6 14:07:12

qiuyouzhi 发表于 2020-3-6 14:01
如果a的值大于5或者小于1就打印'error!'并退出

那为什么要加个return 0,这个又是表达什么

qiuyouzhi 发表于 2020-3-6 14:08:10

2862593577 发表于 2020-3-6 14:07
那为什么要加个return 0,这个又是表达什么

结束程序,要不然还会继续运行

2862593577 发表于 2020-3-6 14:13:38

2862593577 发表于 2020-3-6 14:07
那为什么要加个return 0,这个又是表达什么

printf("%3d\t\t", a);,这个%3d表示什么
页: [1]
查看完整版本: 这程序哪里错了?