C语言程序设计 任意输入10个数,排序:输入a为从大到小排序,输入b为从小到大排序,输入c的排序为

2025-04-15 22:59:47
推荐回答(1个)
回答1:

#include
#include
void sort1(int a[],int length)
{
  int i,j,k;
  for(i=0;i    {
      for(j=0;j    {
      if(a[i]>a[j])
        {
          k=a[i];
          a[i]=a[j];
          a[j]=k;
            }

        }
    }
}
void show(int a[],int length)
{
  int i;
  for(i=0;i<10;i++)
    printf("%3d",a[i]);
  printf("\n");

void sort2(int a[],int length)
{
  int i,j,k;
  for(i=0;i    {
      for(j=0;j        {
          if(a[i]            {
              k=a[i];
              a[i]=a[j];
              a[j]=k;
            }

        }
    }
}
void sort3(int a[],int length)
{
  int i,j,k,max,min;
  for(i=0;i    {
      if(i%2==0)
    {
      max=a[i];
      for(j=i;j        {
          if(a[j]>max)
        {
          max=a[j];
          k=j;
        }
        }
      j=a[i];
      a[i]=max;
      a[k]=j;

    }
      else
    {
      min=a[i];
      for(j=i;j        {
          if(a[j]        {
          min=a[j];
          k=j;
        }
        }
      j=a[i];
      a[i]=min;
      a[k]=j;
    }
    }
  for(i=0;i    {
      printf("%d ",a[i]);
      if((i+1)%2==0)
    printf("\n");
    }


}
int main()
{
  char ch;
  int a[10];
  int i;
  printf("请输入10个数字\n");
  for(i=0;i<10;i++)
    scanf("%d",&a[i]);
  getchar();
  ch= getchar();
  if(ch=='a')
    {
      sort1(a,10);
      show(a,10);
    }
  if(ch=='b')
    {
      sort2(a,10);
      show(a,10);

    }
  if(ch=='c')
    sort3(a,10);
      return 0;
 
}