当前位置: 代码迷 >> C语言 >> 我要排序!!
  详细解决方案

我要排序!!

热度:102   发布时间:2008-03-27 11:11:21.0
我要排序!!
#include<stdio.h>
int main(void)
{
int a[5],n,min,t;
for(n=0;n<5;n++)
     {
        scanf("%d",&a[n]);
     }
     min=a[0];
     for(n=0;n<5;n++)
      {
        if(min>a[n])
        {
            min=a[n];
        }
      }
        printf("%d,",min);
      system("pause");
      return 0;
}
这段代码是输出最小数;
在这个基础上把代码改为从小到大依次输出,怎么写呢?我不会。望提醒!谢谢!
----------------解决方案--------------------------------------------------------
你写个排序,然后输出不就可以了
----------------解决方案--------------------------------------------------------
不知道怎么个排法?
----------------解决方案--------------------------------------------------------
比较简单
//冒泡法
//如果a[10]={已经初始化}
for(int i=0;i<10;i++)
    for(int j=i;j<10;j++)
    {
        if(a[j]>a[j+1])
        {   
            static int temp;
            temp=a[j];a[j]=a[j+1];a[j+1]=temp;
        }
    }
//排完了
----------------解决方案--------------------------------------------------------
在你的程序上修改``我想到的选择排序``

我给你写下算法``你自己写代码``


for ( i=0; i < LEN-1; ++i )
    {
      for( j=i , min = a[j]; j < LEN-1; ++j )
       {
          if ( min > a[j+1] ) min = a[j+1] ; 寻找最小数
       }

       min <> a[i] ; 交换
    }
----------------解决方案--------------------------------------------------------
用选择法最好,通用性好
这个
#include<stdio.h>

void Paixu(int *a)
{
   int i,k,j,t;
  for(i=0;i<10;i++)
{
k=i;
for(j=i;j<10;j++)
if(a[j]>a[k])
k=j;
if(k!=i)
{
  t=a[k];
a[k]=a[i];
a[i]=t;
}
}


}
main()
{
  int a[10],i;
clrscr();
printf("请输入10个数字:");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
Paixu(a);
for(i=0;i<10;i++)
printf("%4d",a[i]);
getch();
}
----------------解决方案--------------------------------------------------------
  相关解决方案