选择法排序:输入一个正整数n,再输入n个整数,将它们从大到小排序

2024-11-24 18:19:29
推荐回答(2个)
回答1:

#include
int main(void)
{
    int a[10],n,i,k,max,temp;

    scanf("%d",&n);
    printf("enter n integers:");
    宏扰for(i=0;i        scanf("%d",&a[i]);
    for(k=0;k    {
        max=k;
        for(i=k+1;i            if(a[i]>a[max])
                max=i;
        if( max!=k ) //先选择出最大的位置,循环结束后再交换
        {
            temp=a[max];
            a[max]=a[k];
            a[k]=temp;
        }
    }
    乱凳for(i=0;i     哗绝旅   printf("%d ",a[i]);
    printf("\n");
    return 0;
}

回答2:

#include
int main(void)
{
    int a[10], n, i, k, t;
    scanf("%d", &n);

    printf("enter n integers:");
    for(i = 0; i < n; i++)  scanf("%d", &a[i]); 

    for(k = 0; k < n - 1; k++) 
      for(i = k + 1; i < n; i++)
        if(a[k] < 键毕a[i])  {
          t = 缺伏a[k];  a[k] = a[i];  a[i] = t;
        }

    for(i = 0; i < n; i++)  printf("%d ", a[i]);
   稿扮芹 printf("\n");

    return  0;
}


其实,楼主的程序,略有些繁杂。

简化一些,既能实现功能,又能便于查错。