1205 - C语言8.8
用选择法(选择排序)对数组中的n个整数从小到大排序,并输出排序后的n个整数。要求使用将数组传至函数进行排序的方法。
Input
第一行有一个整数n,表示整数的个数。保证n不超过100。
第二行有n个用空格隔开的整数。
Output
在一行内输出从小到大排序完成的整数,每个整数后输出一个空格。
请注意行尾输出换行。
Examples
Input
10 1 3 5 7 9 10 6 4 2 8
Output
1 2 3 4 5 6 7 8 9 10
Solution C
#include<stdio.h> void sort(int a[],int n) { int i,j,k; int temp; for(i=0;i<n;i++) { k=i; for(j=i+1;j<n;j++) { if(a[k]>a[j]) k=j; } temp=a[i]; a[i]=a[k]; a[k]=temp; } } int main(void) { int n; int i,x; scanf("%d",&n); int a[n]; for(i=0;i<n;i++) { scanf("%d",&x); a[i]=x; } sort(a,n); for(i=0;i<n;i++) { printf("%d ",a[i]); } printf("\n"); return 0; }
Solution C++
#include <stdio.h> int main() { void sort(int array[], int n); int dat[100]; int n, i; scanf("%d", &n); for (i = 0;i < n;i++) scanf("%d", &dat[i]); sort(dat, n); for (i = 0;i < n;i++) printf("%d ", dat[i]); puts(""); return 0; } void sort(int array[], int n) { int i, j, temp; for (i = 0;i < n - 1;i++) { for (j = i + 1;j < n;j++) { if (array[j] < array[i]) { temp = array[i]; array[i] = array[j]; array[j] = temp; } } } }