对键盘输入的n个数从小到大排序:
动画演示:
#include<stdio.h>
#define MAXSIZE 100
int sort(int a[],int n)
{
int i,temp;
for (int j = 0; j < n - 1; j++)//如图中所示,n个数要比较n-1轮
for (int k = 0; k < n - 1 - j; k++) //每轮比较n-j次相邻的两项,并在符合条件时做交换
if (a[k] > a[k + 1])
{
temp = a[k];
a[k] = a[k + 1];
a[k + 1] = temp;
}
printf("排列后的顺序为:\n");
for(i=0;i<n;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}
int main()
{
int n,i;
int a[MAXSIZE];
printf("请输入您要排序的数字的数量:\n");
scanf("%d",&n);
printf("请输入您要排序的数字(用空格分开):\n");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
sort(a,n);//a代替整个数组传入子函数,因为a代表的是数组a[]的首元素地址,而子函数sort会根据首元素地址找到整个数组
return 0;
}
结果显示: