文章

145

粉丝

143

获赞

21

访问

39.2k

头像
整数排序 题解:C
P1905 华东师范大学2022年机试
发布于2024年3月12日 22:04
阅读数 155

#include <stdio.h>

int Figure(int n)//求位数
{
	int i = 0;
	while(n)
	{
		i++;
		n/=10;
	}
	return i;
}

void Sort(int a[],int n)
{
	int i,j,t;
	for(i = 0; i < n-1; i++)
		for(j = 1; j < n-i; j++)
			if(Figure(a[j]) > Figure(a[j-1]))//位数比较
			{
				t = a[j];
				a[j] = a[j-1];
				a[j-1] = t;
			}
			else if(Figure(a[j]) == Figure(a[j-1]))//位数相同
				if(a[j] < a[j-1])
				{
					t = a[j];
					a[j] = a[j-1];
					a[j-1] = t;
				}
}

int main()
{
	int a[1000000],i,n = 0;
	while(scanf("%d",&i) != EOF)
		a[n++] = i;
	Sort(a,n);
	for(i = 0; i < n; i++)
		printf("%d ",a[i]);
	return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发