1264 - C语言10.34
时间限制 : 1 秒
内存限制 : 32 MB
用指向指针的指针的方法对n个整数从小到大排序并输出。要求将排序单独写成一个函数。n个整数在主函数中输入,经过函数排序后在主函数中输出。
题目输入
第一行有一个整数n,保证n不超过100。
第二行有n个整数,用空格隔开。
题目输出
在一行内输出从小到大有序的n个整数,每个整数后输出一个空格。
请注意行尾输出换行。
输入/输出样例
输入格式
10 1 3 5 7 9 2 4 0 8 6
输出格式
0 1 2 3 4 5 6 7 8 9
C语言解答
#include<stdio.h> int main() { int i,j,n,k,t; int a[100]; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",a+i); for(i=0;i<n-1;i++) { k=i; for(j=i+1;j<n;j++) if(a[k]>a[j]) k=j; if(k!=i) {t=a[i];a[i]=a[k];a[k]=t;} } for(i=0;i<n;i++) printf("%d ",a[i]); printf("\n"); return 0; }
C++解答
#include <stdio.h> int main() { void sort(int *vals[], int n); int *vals[100], val[100], i, n; scanf("%d", &n); for (i = 0;i < n;i++) { scanf("%d", &val[i]); vals[i] = &val[i]; } sort(vals, n); for (i = 0;i < n;i++) printf("%d ", *vals[i]); printf("\n"); return 0; } /* 选择排序函数 */ void sort(int *vals[], int n) { int i, j, **p, *temp; for (i = 0;i < n - 1;i++) { p = vals + i; for (j = i + 1;j < n;j++) { if (*vals[j] < **p) p = vals + j; } temp = *p; *p = vals[i]; vals[i] = temp; } }
Java解答
import java.util.Arrays; import java.util.Scanner; public class Main{ private static Scanner s = new Scanner(System.in) ; public static void main(String[] args) { int num = s.nextInt() ; if(num<=100){ int a[] = new int[num] ; for (int i = 0; i < num; i++) { a[i] = s.nextInt() ; } Arrays.sort(a); for (int i = 0; i < a.length; i++) { System.out.print(a[i]+" "); } System.out.println(); } } }