怎么修改使从大到小输出?(语言-c语言)


#include 
int main()
{
    int a,b,c,d,e;
    printf("请输入4个整数:");
    scanf("%d%d%d%d",&a,&b,&c,&d);
    int max(int x,int y);
    e=max(max(a,b),max(c,d));
    printf("由大到小输出为:%d %d %d %d\n",a,b,c,d);
    return 0;
}
int max(int x,int y)
{
    int z;
    if(x>y)
    {
        z=x;
    }
    else
        z=y;
    return z;
}

#include<stdio.h>
int a,b,c,d;
int main()
{
    int e[4];
    printf("请输入4个整数:");
    scanf("%d%d%d%d",&a,&b,&c,&d);
    int max(int x,int y);
    void dropMax(int max);
    for(int i=0;i<4;i++)
    {
        e[i]=max(max(a,b),max(c,d));
        dropMax(e[i]);
    }

    printf("由大到小输出为:%d %d %d %d\n",e[0],e[1],e[2],e[3]);
    return 0;
}
int max(int x,int y)
{
    int z;
    if(x>y)
    {
        z=x;
    }
    else
        z=y;
    return z;
}
void dropMax(int max)
{
    if(max == a)
    {
        a=0;
    }
    else if(max == b)
    {
        b=0;
    }
    else if(max == c)
    {
        c=0;
    }
    else if(max == d)
    {
        d=0;
    }
}

你在函数里面并没有修改了它的值,只是修改形参,要用指针才行