游客 Signup | Login
中文 | En

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;
			}
		}
	}
}

Time Limit 1 second
Memory Limit 32 MB
Discuss Stats
上一题 下一题