Yth961102zxc 发表于 2020-4-25 12:23:09

指针的疑问

#include <stdio.h>
#include <bits/stdc++.h>

int main(){
        int a,b,c;
        int *d,*e,*f,*g;
        printf("请输入三个数:");
        scanf("%d%d%d",a,b,c);
       
        d=&a;
        e=&b;
        f=&c;
       
        if(a>b){
                g=d;
                d=e;
                e=g;
        }

        if(a>c){
                g=d;
      d=f;
      f=g;
      
        }

        if(b>c){
                g=e;
                e=f;
                f=g;
        }
        printf("%d <= %d <= %d\n",*d,*e,*f);
       
        return 0;
}

这个代码目的是输入三个数并按照从小到大的顺序排列 ,但是我运行没有成功...不知道哪里出了问题 求助大佬帮忙改正,如果能帮小弟给出注释讲解一下更是不胜感激{:7_119:}

sunrise085 发表于 2020-4-25 13:08:00

scanf("%d%d%d",a,b,c);
scanf哪里写错了,需要给地址scanf("%d%d%d",&a,&b,&c);
昨天不是给你写过了么?

liuzhengyuan 发表于 2020-4-25 13:24:45

scanf 输入要取址操作符 “&”

liuzhengyuan 发表于 2020-4-25 13:31:37

注意:a,b,c 不是指针变量
所以要加“&”

Yth961102zxc 发表于 2020-4-25 13:49:28

sunrise085 发表于 2020-4-25 13:08
scanf哪里写错了,需要给地址scanf("%d%d%d",&a,&b,&c);
昨天不是给你写过了么?

大佬好 昨天您帮我改的答案是好使的 这个是我看完自己摸索着写的 但是我还是没太懂其中的具体原理。。 所以来求个注释...

Yth961102zxc 发表于 2020-4-25 13:50:08

liuzhengyuan 发表于 2020-4-25 13:31
注意:a,b,c 不是指针变量
所以要加“&”

噢噢对 忘记了{:10_266:}
页: [1]
查看完整版本: 指针的疑问