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

C语言程序设计
任意输入10个数,排序:输入a为从大到小排序,输入b为从小到大排序,输入c的排序为:最大,最小,次最大,次最小等等,每输入两个数换行
用C语言编写,求助

#include<stdio.h>
#include<stdlib.h>
void sort1(int a[],int length)
{
  int i,j,k;
  for(i=0;i<length;i++)
    {
      for(j=0;j<length;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<length;i++)
    {
      for(j=0;j<length;j++)
        {
          if(a[i]<a[j])
            {
              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<length;i++)
    {
      if(i%2==0)
    {
      max=a[i];
      for(j=i;j<length;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<length;j++)
        {
          if(a[j]<min)
        {
          min=a[j];
          k=j;
        }
        }
      j=a[i];
      a[i]=min;
      a[k]=j;
    }
    }
  for(i=0;i<length;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;
 
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-10-19
没懂 你题目的意思追问

就是用C语言编个程序,实现这个

追答

你把原题目拍了发上来吧。或者你再解释一下怎么输入10个数又输入两个数换行

追问

额,我错了,是输出两个数一行,对不住啊

第2个回答  2014-10-19
最好你写写看 不对 我们帮你改 这样比较好

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网