题目描述
自定义函数sort(int *p, int n),功能是对n个数排序。在main函数中,调用它,对输入的任意个数排序。
输入
多组测试数据,先输入n(n<100),再输入n个任意整数
输出
输出从小到大排列后的数组
样例输入 Copy
5 9 4 3 2 1 6 34 23 12 78 -20 0
样例输出 Copy
1 2 3 4 9 -20 0 12 23 34 78
#include<stdio.h>
int sort(int *p,int n)
{
int i,j,temp;
for(i=0;i<n-1;i++)
for(j=i;j<n;j++)
if(p[i]>p[j])
{
temp=p[i];
p[i]=p[j];
p[j]=temp;
}
}
int main()
{
int n,a[100],i;
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<n;i++)
scanf("%d",&a[i]);
sort(a,n);
for(i=0;i<n-1;i++)
printf("%d ",a[i]);
printf("%d",a[n-1]);
printf("\n");
}
return 0;
}
下面这段是我刚开始的代码,运行输出超限;
#include<stdio.h>
#define N 20
void sort(int *a, int n)
{
for(int i=0;i<n-1;i++){
int item;
for(int j=i+1;j<n;j++){
if(a[i]>a[j]){
item=a[i];
a[i]=a[j];
a[j]=item;
}
}
}
}
int main()
{
int n;
while(scanf("%d",&n)){
int a[N];
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
sort(a,n);
for(int i=0;i<n-1;i++)
printf("%d ",a[i]);
printf("%d\n",a[n-1]);
}
}