指针作返回值编写函数

.用指针作返回值编写函数int *sort(int a, int b, int c),实现求三个数中的最大值、中间值和最小值。在main函数中进行数据输入和输出,数据之间用“,”隔开。输入:三个整数,数据之间用“,”隔开。输出:最大值、中间值和最小值,数据之间用“,”隔开。

#include<stdio.h>
#include <stdlib.h>
int *sort(int a, int b, int c){

    int* p = (int*)malloc(3*sizeof(int));
    int tmp = 0;

    p[0] = a;
    p[1] = b;
    p[2] = c;

    for(int i = 0; i < 3; i++){
        for (int j = i + 1; j < 3; j ++)
        {
            if (p[i] < p[j])
            {
                tmp = p[j];
                p[j] = p[i];
                p[i] = tmp;
            }
        }
    } 
    return p;
}

int main(){
    int a,b,c;

    printf("请输入三个数\n");
    scanf("%d %d %d", &a, &b, &c);

    int* p = sort(a, b, c);

    printf("max = %d, mid = %d, min = %d\n", p[0], p[1], p[2]);
    return 0;
}