秋浸月 2023-10-04 16:19 采纳率: 46.2%
浏览 1

用函数实现3个数字排序报错

为啥会这样,初学者看不懂

img

img

#include<stdio.h>


void swap(int*x,int*y)
{
    int temp=*x;
    *x=*y;
    *y=temp;
}


int main()
{
    void exchange(int *q1,int *q2,int q3);
    int *p1,*p2,*p3,a,b,c; 
    printf("please enter a,b,c:\m");
    scanf("%d%d%d",&a,&b,&c);
    p1=&a;
    p2=&b;
    p3=&c;
    exchange(p1,p2,p3);
    printf("The order is:%d %d %d",a,b,c);
    return 0;
}

void exchange(int *q1,int *q2,int *q3)
{
    if(*q1<*q2)    swap(q1,q2);
    if(*q1<*q3) swap(q1,q3);
    if(*q2<*q3)    swap(q2,q3);
}
  • 写回答

4条回答 默认 最新

  • threenewbee 2023-10-04 16:30
    关注
    #include<stdio.h>
     
     
    void swap(int*x,int*y)
    {
        int temp=*x;
        *x=*y;
        *y=temp;
    }
     
     
    int main()
    {
        void exchange(int *q1,int *q2,int *q3); //这里*q3
        int *p1,*p2,*p3,a,b,c; 
        printf("please enter a,b,c:\n"); //这里\n
        scanf("%d%d%d",&a,&b,&c);
        p1=&a;
        p2=&b;
        p3=&c;
        exchange(p1,p2,p3);
        printf("The ordered is:%d %d %d",a,b,c);
        return 0;
    }
     
    void exchange(int *q1,int *q2,int *q3)
    {
        if(*q1>*q2)    swap(q1,q2); //<是逆序,>是正序,下同
        if(*q2>*q3)    swap(q2,q3); //这里
        if(*q1>*q2)    swap(q1,q2); //这里
    }
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 10月4日