秋浸月 2023-10-01 22:15 采纳率: 46.2%
浏览 5
已结题

关于#c语言#的问题:为什么我用4个指针实现排序3给大小数字会实现不了

运行代码,然后,电脑输出的答案达不到排序的效果

以下是我的代码:

#include<stdio.h>                        //有脏东西 


int main()
{
    int a,b,c;
    int*p1,*p2,*p3,*p;
    printf("请输入a,b,c的值:");
    scanf("%d %d %d",&a,&b,&c);
    p1=&a;
    p2=&b;
    p3=&c;
    if(a<b<c)
    {
        p=p1;p1=p3;p3=p;                       
    }
    else
    if(c<a<b)            //20  22  18,这组数据运行时电脑输出答案有错
    {
        p=p1;p1=p2;p2=p;
    }
    else
    if(a<c<b)        //18  22  20 ,这组数据也一样
    {
        p=p1;p1=p2;p2=p3;p3=p;
    }
    else
    if(b<c<a)
    {
        p=p2;p2=p3;p3=p;
    }
    else
    if(b<a<c)
    {
        p=p1;p1=p3;p3=p2;p2=p;
    }
    printf("a=%d,b=%d,c=%d\n",a,b,c);
    printf("MAX=%d,MID=%d,MIN=%d",*p1,*p2,*p3);
    return 0;
}

  • 写回答

2条回答 默认 最新

  • threenewbee 2023-10-01 22:17
    关注

    if(a<b<c)
    不能这么写

    if(a<b && b<c)
    别的类似

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月10日
  • 已采纳回答 10月2日
  • 请采纳用户回复 10月1日
  • 创建了问题 10月1日