输入六个数,从大到小输出,哪出错了呢


#include<stdio.h>
int max(int a[],int len)
{
    int maxid = len-1,i;
    for(i=len-2;i>=6-len;i--)
    {
        if(a[maxid]<a[i])
        maxid = i;
    }
    return maxid;
}
int main()
{
    int a[6];
    int i;
    for(i=0;i<6;i++)
    scanf("%d",&a[i]);
    int len = sizeof(a)/sizeof(a[0]);
    for(i=0;i<len;i++)
    {
        int maxid =max(a,len-i);
        int t = a[maxid];
        a[maxid] = a[i];
        a[i] = t;
    }
    for(i = 0;i<len;i++)
    printf("%d",a[i]);
    return 0;
}

    for(i=0;i<len;i++)

    {

        int maxid =max(a,len-i);

        int t = a[maxid];

        a[maxid] = a[i];

        a[i] = t;

    }

上面的逻辑有问题

#include <stdio.h>

#include <stdlib.h>

int main()

{

int a[6];

int i,j,k;

for(i=0;i<=5;i++)

{

scanf("%d",&a[i]);

}

for(i=0;i<=5;i++)

{

for(j=0;j<=5;j++)

{

if(a[i]>a[j])

{

k=a[i]; a[i]=a[j]; a[j]=k;

}

}

}

printf("排序结果是:\n");

for(i=0;i<=5;i++)

{

printf("%d\t",a[i]);

}

return 0;

}