Time Limit: 1000 ms Memory Limit: 65536 KiB
Problem Description
LeiQ当上了体育委员,现在老师让他去给班级里的人排队,LeiQ刚学了排序,所以他想以这种方式给班级里的人排队(从矮到高),他想知道排序完成后的结果。
Input
多组输入,每组的第一行是一个正数n(1<=n<=100),第二行是n个数,表示每一个人的高度。
Output
输出排序完成后的结果。
Sample Input
3
176 175 174
Sample Output
174 175 176
**Hint
Source**
#include <stdio.h>
#include <stdlib.h>
void swpe (int *p,int *q) //两个数的交换函数;
{
int stmp;
stmp = *p;
*p = *q;
*q = stmp;
}
void f(int *a,int n) //冒泡排序函数,用指针间接访问数组元素;
{
int i,j;
for(i=0;i<n-1;i++)
{
for(j=0;j<n-1-i;j++)
{
if(*(a+j)>*(a+j+1))
{
swpe(a+j,a+j+1); //调用swpe函数交换*(a+j)和*(a+j+1);
}
}
}
}
int main()
{
int n;
int a[101],i;
while(~scanf("%d",&n)) //多组输入直至文本输入结束;
{
for(i=0;i<n;i++)
scanf("%d",&a[i]);
f(a,n); //调用冒泡排序函数;
for(i=0;i<n;i++) //输出;
{
if(i==n-1) printf("%d\n",a[i]);
else printf("%d ",a[i]);
}
}
return 0;
}
运行结果:
3
176 175 174
174 175 176
^Z
Process returned 0 (0x0) execution time : 12.876
Press any key to continue.