鱼C论坛

 找回密码
 立即注册
查看: 868|回复: 5

[已解决]代码问题

[复制链接]
发表于 2020-4-29 17:44:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <stdio.h>

int main()
{
            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",*pa,*pb,*pc);
                getchar();getchar();

        return 0;
}

这个程序运行出错。然后退出程序之后让我调试。
最佳答案
2020-4-29 17:51:01
改成这样:
#include <stdio.h>

int main()
{
            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",*pa,*pb,*pc);
                getchar();getchar();

        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-29 17:51:01 | 显示全部楼层    本楼为最佳答案   
改成这样:
#include <stdio.h>

int main()
{
            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",*pa,*pb,*pc);
                getchar();getchar();

        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-29 17:51:32 | 显示全部楼层
                 *pa =&a;
                 *pb =&b;
                 *pc =&c;
    应该改成这样:
                 pa = & a  ;
                 pb = & b  ;
                 pc = & c  ;
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-4-29 17:54:40 | 显示全部楼层

好的,谢谢。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-29 17:55:34 | 显示全部楼层
这里是给 pa、pb、pc 的地址赋值,不是给 pa、pb、pc 指向的值赋值,所以不用加星号。

帮你改好了并且规范了一下代码:
#include <stdio.h>

int main()
{
    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", *pa, *pb, *pc);
    getchar();
    getchar();

    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-30 14:47:38 | 显示全部楼层
zltzlt 发表于 2020-4-29 17:55
这里是给 pa、pb、pc 的地址赋值,不是给 pa、pb、pc 指向的值赋值,所以不用加星号。

帮你改好了并且规 ...

看到了看到了,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-14 19:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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