优质回答 回答者:Paksun
排序数组可以使用冒泡算法:如果前一个数据比后一个大,则交换。#include
//使用冒泡算法升序数组src
voidsort(int*src,intlen)
{
inttem;
for(inti=0;i
{
for(intj=0;j
if(src[j]>src[j+1])//如果前一个数据比后一个大,则交换
{
tem=src[j];
src[j]=src[j+1];
src[j+1]=tem;
}
}
}
intmain()
{
inta[10]={2,5,9,6,4,7,8,1,0,3};
sort(a,10);//排序
for(inti=0;i<10;i++)//输出结果
printf("%d",a[i]);
return0;
}
-----------------------------------------------------------------
回答者:山顶的观望者
main ( )
{ int a[5];
int i,j,t;
printf (“input 4 unmbers:\n”);
for(i=1;i<5;i++)
scanf (“%d ” ,&a[i]);
for(j=1; j<=3; j++)
for ( i=j+1; i<=4; i++)
if (a[i]>a[j])
{t=a[i];a[i]=a[j];a[j]=t;}
printf( “the sorted numbers:\n”);
for( i=1;i<5;i++)
printf(“%d”,a[i]);
c语言中常常数组的第一个元素a[0]不用,为了和实际情况符合,一般我们数数都是从第一个开始,并非是第0个;
-----------------------------------------------------------------
回答者:leo李昊
main ( )
{ int a[5];
int i,j,t;
printf (“input 4 unmbers:\n”);
for(i=1;i<11;i++)
scanf (“%d ” ,&a[i]);
printf (“\n”);
for(j=1; j<=4; j++)
for ( i=j; i<=4-j; i++)
if (a[i]>a[i+1])
{t=a[i];a[i]=a[i+1];a[i+1]=t;}
printf( “the sorted numbers:\n”);
for( i=1;i<5;i++)
printf(“%d”,a[i]);
}
-----------------------------------------------------------------
回答者:BJW
此问题是典型的排序问题,有好多解决办法,其中一种是冒泡排序法。
具体思路是:
在水中,气泡密度小,故要上浮。在此题中,把最小的数比作是气泡,在排序过程中要“上浮”。
具体请参见参考资料中的方法,有各种语言实现的。
建议:学习一下数据结构。
TAGS: 数字排列