利用指针方法实现两数互换,函数原型为:void swap(int *p1,int *p2);在线等,急

输入3个数x,y,z,按大小顺序排序后输出。
要求:利用指针方法实现两数互换,函数原型为:void swap(int *p1,int *p2);
输入提示:printf("please input 3 number x,y,z");
输出格式:printf("the sorted numbers are:%d,%d,%d\n", );

#include <stdio.h>
#include <stdlib.h>

void swap(int *p1,int *p2)
{
    int temp;
    temp = *p1;
    *p1 = *p2;
    *p2 = temp;
}

int main()
{
    int x,y,z;
    int i,j;
    int m[3];
    printf("please input 3 number x,y,z");
    for(i = 0; i < 3 ;i++)
    {
        scanf("%d",&m[i]);
    }
    for(i = 0; i < 2; i++)
    {
        for(j = 0; j < 3; j++)
        {
            if(m[i] < m[j])
            {
                swap(m[i],m[j]);
            }
        }
    }
    printf("the sorted numbers are:%d,%d,%d\n", m[0],m[1],m[2]);

   return 0;
}

我的代码哪里有错?

swap调用的时候,参数应该是指针啊也,swsp(&m[i],&m[j])

swap(m[i],m[j]);
正确做法是对m[i]取地址
swap(&m[i],&m[j]); 或者 swap(m+i,m+j);