【题目描述】
编程输入n(1≤n≤20)个小于1000非负整数,然后自动按从大到小的顺序输出。(冒泡排序)
【输入】
第一行,数的个数n;
第二行,n个非负整数。
【输出】
由大到小的n个非负整数,每个数占一行。
【输入样例】
5
2 5 8 6 12
【输出样例】
12
8
6
5
2
C++:
#include<bits/stdc++.h> using namespace std; int main() { int a[1001]; int n; int temp; //用于交换的中间变量 cin>>n; for(int i=1;i<=n;i++) { cin>>a[i]; } for(int i=1;i<n;i++) //遍历n-1次因为最后一个数后面没有数可比较了 { //当然也可以遍历n次(不影响结果) for(int j=1;j<n;j++) //每次遍历需要冒泡n-1次 { if(a[j]<a[j+1]) //大的数(泡泡)挤到前面(上面)去 { temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } } for(int i=1;i<=n;i++) { cout<<a[i]<<endl; //按格式输出 } }
C语言:
#include<stdio.h> int main() { int a[1001]; int i,j,t; int n; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d",&a[i]); } for(i=0;i<n-1;i++) { for(int j=0;j<n-1;j++) { if(a[j]<a[j+1]) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } } for(i=0;i<n;i++) { printf("%d\n",a[i]); } }