题目:用选择法对10个整数从小到大排序。(p165)
#include<stdio.h>
int main()
{
int i,j,max,a[10];
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i< 9;i++) //对每一位元素比较
{
for(j=i+1;j<=9;j++) //将元素与剩下的比较
{
if(a[i]>a[j]) //将大数往后移,求出最小数
{
max=a[i];
a[i]=a[j];
a[j]=max;
}
}
}
for(i=0;i<10;i++)
printf("%5d",a[i]);
printf("\n");
return 0;
}
利用函数
注意:在输入数组时,每个元素以回车结束时输入十个时自动结束输入,而以空格时可以一直输入,直到按回车结束。
#include<stdio.h>
int main()
{
void sort(int array[],int i);
int a[10],i;
printf("input array:");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
sort(a,i);
printf("\nThe sorted array:\n");
for(i=0;i<10;i++)
printf("%d",a[i]);
printf("\n");
return 0;
}
void sort(int array[],int i)
{
int max,j,k;
for(j=0;j<i-1;j++)
for(k=j+1;k<i;k++)
{
if(array[j]>array[k])
{
max=array[j];
array[j]=array[k];
array[k]=max;
}
}
}