15245918600 发表于 2022-9-25 22:05:17

这个程序为什么编译之后是这样的???

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int a,b;

    printf("请输入第一个数:");
    scanf("%d%d",&a,&b);



    if (a!=b)
       {


      if (a>b)
      printf("%d>%d\n",&a,&b);

      if (a<b)
      printf("%d<%d\n",&a,&b);}
    else
      printf("%d=%d\n",&a,&b);

    return 0;
}




请输入第一个数:5
5
6356732=6356728

jackz007 发表于 2022-9-25 22:16:47

      printf("%d>%d\n",&a,&b);
      printf("%d<%d\n",&a,&b);}
      printf("%d=%d\n",&a,&b);
      去掉所有红色的 &

临时号 发表于 2022-9-25 22:45:58

很显然,你把scanf和printf搞混了
&是取地址操作符,你这不就是把a和b的地址打印出来吗,所以应去掉printf的&
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int a,b;

    printf("请输入第一个数:");
    scanf("%d%d",&a,&b);



    if (a!=b)
       {


      if (a>b)
      printf("%d>%d\n",a,b);

      if (a<b)
      printf("%d<%d\n",a,b);}
    else
      printf("%d=%d\n",a,b);

    return 0;
}

zhangjinxuan 发表于 2022-9-26 07:19:26

楼上正确,因为&是取地址符,你打印一个地址,肯定打印出奇怪的东西呀

泌阳 发表于 2022-9-26 14:34:20

打印函数不需要取地址符“&”,别把“scanf”和“printf”弄混了,scanf是需要取地址符,printf是不需要取地址符,“&”这是取地址符后面还会学习这个。

我是扬帆起航 发表于 2022-10-6 00:09:05

打印的时候不需要&
页: [1]
查看完整版本: 这个程序为什么编译之后是这样的???