一、题目:对输入的n个数进行排序并输出
输入:
第一行包括一个整数n(1<=n<=100).接下来输入这n个整数
输出:
输出n个排序后的数,每个数后有个空格,每组测试结果占一行
样例输入:
4
1 4 3 2
样例输出:
1 2 3 4
方法一:
实现代码:
#include <stdio.h>
int main(){
int a[100],n;
while(scanf("%d\n",&n)!=EOF){
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
}
for(int i=0;i<n;i++){
for(int j=0;j<n-1-i;j++){
if(a[j]>a[j+1]){
int tmp=a[j];
a[j]=a[j+1];
a[j+1]=tmp;
}
}
}
for(int i=0;i<n;i++){
printf("%d ",a[i]);
}
printf("\n");
}
return 0;
}
输出结果:
4
3 5 2 1
1 2 3 5
6
6 7 4 3 2 9
2 3 4 6 7 9
方法二:
实现代码:
#include <stdio.h>
#include <algorithm>
using namespace std;
int main()
{
int n;
int buf[10000];
while(scanf("%d",&n)!=EOF){
for(int i=0;i<n;i++){
scanf("%d",&buf[i]);
}
sort(buf,buf+n);
for(int i=0;i<n;i++){
printf("%d ",buf[i]);
}
printf("\n");
}
return 0;
}
输出结果:
5
5 3 4 5 3
3 3 4 5 5
8
4 6 5 3 4 5 3 5
3 3 4 4 5 5 5 6
方法三:
实现代码:
#include <iostream>
#include <stdio.h>
#include <algorithm>
using namespace std;
bool cmp(int x,int y){//定义函数,当x>y是,x排在y前面
return x>y;
}
int main()
{
int n;
int buf[10000];
while(scanf("%d",&n)!=EOF){
for(int i=0;i<n;i++){
scanf("%d",&buf[i]);
}
sort(buf,buf+n,cmp);//利用内置sort函数
for(int i=0;i<n;i++){
printf("%d ",buf[i]);
}
printf("\n");
}
return 0;
}
输出结果:
6
4 6 4 2 4 9
9 6 4 4 4 2
9
4 6 5 4 33 44 6 4 0
44 33 6 6 5 4 4 4 0