1235 - C语言10.5
时间限制 : 1 秒
内存限制 : 32 MB
读入n个整数,使用选择排序法对这些整数由大到小排序并输出。
题目输入
第一行有一个整数n,第二行包含了n个用空格隔开的整数。输入保证n不超过100。
题目输出
将这n个数按从大到小顺序输出,每个数之后输出一个空格。
请注意行尾输出换行。
输入/输出样例
输入格式
10 2 3 4 5 6 7 8 9 1 0
输出格式
9 8 7 6 5 4 3 2 1 0
C语言解答
#include<stdio.h> void sort(int a[],int x) { int i,j,t; for(i=0;i<x;i++) for(j=i+1;j<x;j++) { if(a[j]>a[i]) { t = a[i]; a[i]=a[j]; a[j]=t; } } } void main() { int n,i,a[100]; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",&a[i]); sort(a,n); for(i=0;i<n;i++) printf("%d ",a[i]); printf("\n"); }
C++解答
#include <stdio.h> int main() { int a[100]; int i, n; void sort(int x[], int n); scanf("%d", &n); for (i = 0;i < n;i++) scanf("%d", &a[i]); sort(a, n); for (i = 0;i < n;i++) printf("%d ", a[i]); printf("\n"); return 0; } /* 选择排序过程 */ void sort(int x[], int n) { int i, j, k, t; for (i = 0;i < n - 1;i++) { /* 在剩余项中寻找最大的一项,并调换到第i位 */ k = i; for (j = i + 1;j < n;j++) if (x[j] > x[k]) k = j; if (k != i) { t = x[i]; x[i] = x[k]; x[k] = t; } } }
Java解答
import java.util.*; public class Main{ public static void main (String[] args) { Scanner in=new Scanner(System.in); int n=in.nextInt(); int []a=new int[n]; for(int i=0;i<n;i++){ a[i]=in.nextInt(); } java.util.Arrays.sort(a); for(int j=n-1;j>=0;j--){ System.out.print (a[j]+" "); } System.out.println (); } }