46 排序问题

46 排序问题

作者: Turbo时间限制: 1S章节: 一维数组

问题描述 :

从键盘上输入一组整数,把数据由大到小排序并输出。

输入说明 :

你的程序需要从标准输入设备(通常为键盘)中读入多组测试数据。每组测试数据数据占两行,第一行表示输入数据的个数(大于零,小于80),第二行是输入的数据,其中每个数据都是整数(大于等于-231,小于等于231-1)。

输出说明 :

对每组测试数据,你的程序需要向标准输出文件(通常为启动该程序的终端)依次输出一组对应的答案。每个答案占一行,即把输入的数据由大到小排序并输出。说明:每组答案最后一个数字末尾留一个空格,最后一组答案后留一空行。

输入范例 :

1
7
13
15 19 10 8 7 6 11 8 9 5 4 33 100
4
-21 11 5 8

输出范例 :

7
100 33 19 15 11 10 9 8 8 7 6 5 4
11 8 5 -21

#include<stdio.h>
#include<stdlib.h>
void showArray(int array[],int n){
	for(int i=0;i<n;i++){
		printf("%d ",array[i]);
	}
}

void sort(int p[],int len){
	int i=0,j=0,temp=0,tempi=0;
	for(i=1;i<len;i++){
		tempi=p[i];
		for(j=i;j>=1;j--){
			if(tempi>p[j-1]){
				temp=p[j];
				p[j]=p[j-1];
				p[j-1]=temp;
			}
		}
	}
}

int main(){
	int m,*q,k;
	while(scanf("%d",&m)!=EOF){
		q=(int*)malloc(m*sizeof(int));
		for(k=0;k<m;k++){
			scanf("%d",&q[k]);
		}
		sort(q,k);
		showArray(q,k);
		printf("\n");
		free(q);
	}
	return 0;
}
发布了22 篇原创文章 · 获赞 3 · 访问量 6739

猜你喜欢

转载自blog.csdn.net/weixin_39910081/article/details/104532390
46