回 帖 发 新 帖 刷新版面

主题:大虾指点一下

#include <stdio.h>
void main()
{
   int a[10]={45,56,25,23,21,64,75,15,28,93};
   int i,j,k,l;
   printf("the old numbers  are:\n");
   for(i=0;i<=9;i++)
   printf("\n the sorted numbers are: \n");
   for(j=0;j<=9;j++)
      for(i=0;i<=9-j;i++)
         if(a[i>a[i+1])
         {k=a[i];a[i]=a[i+!];a[i+!]=k;}
printf("\n the sorted numbers are :\n");
l=a[9];
a[9]=a[7];
a[7]=l;
for(i=0;i<=9;i++)
  printf("%d",a[i]);
}
各位大虾,这是我编地,感觉有很多错误,请指教!
问题,是把第三大地数排在第一位

回复列表 (共2个回复)

沙发

就按你的思路小改了一下,只要把第三大的数排在第一位,后面交换的应该是a[0]和a[2]啊,就可以了,若还要重新排列的话,再小改一下就可以了自己想想
#include <stdio.h>
void main()
{
   int a[10]={45,56,25,23,21,64,75,15,28,93};
   int i,j,k,l;
   printf("the old numbers  are:\n");

   for(i=0;i<=9;i++)
        printf("%d ",a[i]);

   printf("\n the sorted numbers are: \n");
   for(j=0;j<=9;j++)
      for(i=0;i<=9-j;i++)
         if(a[i]>a[i+1])
         {
             k=a[i];
             a[i]=a[i+1];
             a[i+1]=k;
         }
printf("\n the sorted numbers are :\n");
l=a[0];
a[0]=a[2];
a[2]=l;
for(i=0;i<=9;i++)
  printf("%d ",a[i]);
}

板凳

include <stdio.h>
void main()
{
   int a[10]={45,56,25,23,21,64,75,15,28,93};
   int i,j,k,l;
   printf("the old numbers are:\n");
   for(i=0;i<=9;i++)
   printf("\n the sorted numbers are: \n");
   for(j=0;j<=9;j++)
      for(i=0;i<=9-j;i++)
         if(a[i>a[i+1])
         {k=a[i];a[i]=a[i+!];a[i+!]=k;}
printf("\n the sorted numbers are :\n");
l=a[9];
a[9]=a[7];
a[7]=l;
for(i=0;i<=9;i++)
  printf("%d",a[i]);
}

我来回复

您尚未登录,请登录后再回复。点此登录或注册