呼噜呼噜毛 发表于 2021-2-12 09:26:27

关于Devc++编译问题

为什么这串代码的输出结果与小甲鱼的不一样。
#include <stdio.h>

int main(void)
{
      int a, b, c, t;
      int *pa, *pb, *pc;
      
      printf("请输入三个数:");
      scanf("%d%d%d", &a, &b, &c);
      
      pa = &a;
      pb = &b;
      pc = &c;
      
      if (a > b)
      {
                t = *pa;
                *pa = *pb;
                *pb = t;
      }
      
      if (a > c)
      {
                t = *pa;
                *pa = *pc;
                *pc = t;
      }
      
      if (b > c)
      {
                t = *pb;
                *pb = *pc;
                *pc = t;
      }
      
      printf("%d <= %d <= %d\n", *pa, *pb, *pc);
      printf("%d <= %d <= %d\n", a, b, c);
      
      return 0;
}

一叶枫残 发表于 2021-2-12 09:29:30

本帖最后由 一叶枫残 于 2021-2-12 09:33 编辑

你想要什么输出结果,我运行了一下没发现什么问题。

呼噜呼噜毛 发表于 2021-2-12 09:45:41

一叶枫残 发表于 2021-2-12 09:29
你想要什么输出结果,我运行了一下没发现什么问题。

就是我输入3,5,1时,输出结果为0<=3<=4203833,输入其他的也就中间的数变了一下,其他没变。

一叶枫残 发表于 2021-2-12 10:00:21

你的输入格式是空格隔开还是回车还是其他方式?

一叶枫残 发表于 2021-2-12 10:01:37

不能用逗号把数之间隔开,用空格或是回车

呼噜呼噜毛 发表于 2021-2-12 10:25:12

一叶枫残 发表于 2021-2-12 10:01
不能用逗号把数之间隔开,用空格或是回车

谢谢,明白了,谢谢,但为什么不能用逗号勒?

一叶枫残 发表于 2021-2-12 10:27:59

呼噜呼噜毛 发表于 2021-2-12 10:25
谢谢,明白了,谢谢,但为什么不能用逗号勒?

输入格式要与scanf对齐,你的scanf格式是"%d%d%d",如果你要用逗号把数隔开,需要写成"%d,%d,%d",这样输入格式才正确

李京 发表于 2021-2-12 10:30:06

呼噜呼噜毛 发表于 2021-2-12 10:25
谢谢,明白了,谢谢,但为什么不能用逗号勒?

scanf会自动忽略空白字符但是不会忽略逗号
所以,逗号也算一个输入

一叶枫残 发表于 2021-2-12 10:30:10

还要注意,英文输入格式与中文输入格式下的符号是不同的,英文的是半角符号,注意

一叶枫残 发表于 2021-2-12 10:30:44

李京 发表于 2021-2-12 10:30
scanf会自动忽略空白字符但是不会忽略逗号
所以,逗号也算一个输入

呼噜呼噜毛 发表于 2021-2-12 13:50:17

谢谢各位大佬,谢谢
页: [1]
查看完整版本: 关于Devc++编译问题