当前位置:文档之家› N个数进行从小到大排序

N个数进行从小到大排序

7.N个数进行从小到大排序(N由键盘输入)。

main()
{
int a[100],i,j,p,n,t;
printf("输入所需要排序的数据个数:\n");
scanf("%d",&n);
printf("输入所要排序的各个数据:\n");
for (i=1 ;i<=n;i++)
scanf("%d",&a[i]);
for (i=1;i<=n-1;i++)
for (j=1;j<=n-i;j++)
if (a[j]>a[j+1] )
{t=a[j];
a[j]=a[j+1];
a[j+1]=t;}
for (i=1;i<=n;i++)
printf("%d",a[i]);
}.
对已知的10个学生的计算机语言C的竞赛成绩从小到大排序,并把排序好的成绩输出。

#include <stdio.h>
#define NUMBER 10/*定义数列元素个数*/
#include <conio.h>
void main( )
{
int array[NUMBER]={90,88,86,84,82,80,78,76,74,72};/*初始化数组*/
int i,j,k,temp;
printf("排序前数组\n");
for(i=0;i<NUMBER;i++)
printf("%3d",array[i]);/*打印排序前数组*/
for(i=0;i<NUMBER;i++)
{ /*第i次排序*/
k=i; /*记录当前位置的下标。

第一次选择排序时,k=0,当前位置是array[0]*/
for(j=i+1;j<NUMBER;j++)
if( array[j] <array[k])
k=j; /*某次排序时,如果有任何一个值array[j]小于当前位置值array[k],则k 下标指定这个j,array[k]仍是这次排序中的最小值*/
if(i!=k)
{
temp=array[i];
array[i]=array[k];
array[k]=temp;/*若最小值不在位置i,则交换array[i]和array[k],交换前array[k]是本次
排序中的最小元素,array[i]是当前比较位置*/ }
}
printf("\n输出排序后结果\n");
for(i=0;i<NUMBER;i++)
printf("%3d",array[i]);/*输出排序后结果*/
getch( );
}。

相关主题