江浸月X 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日

悬赏问题

  • ¥15 如何用MATLAB写一段烟幕弹拦截导弹的代码?
  • ¥15 这两个验证谁能解决,带价来
  • ¥15 matlab可视化全球TEC含量图
  • ¥15 怎么将普通C++转入UE5
  • ¥15 求一段多输入类型的matlab lstm的代码
  • ¥15 零基础200题编字典问题
  • ¥15 win11移除微软账户登录
  • ¥15 部署zabbix登录时跳转如下页面
  • ¥15 cup+fpga+88E1111 rgmii to sgmii
  • ¥15 请问如何从gprmax中导出的merged.out文件获取雷达数据(应该是个二维数组吧),我看到网上很多对雷达数据的操作但是都没有说如何获得这个数据,因为out文件不能直接操作要转成其他格式是吧