题目描述
对输入的n个数进行排序并输出。
输入描述:
输入的第一行包括一个整数n(1<=n<=100)。 接下来的一行包括n个整数。
输出描述:
可能有多组测试数据,对于每组数据,将排序后的n个整数输出,每个数后面都有一个空格。 每组测试数据的结果占一行。
示例1
输入
复制
4 1 4 3 2
输出
复制
1 2 3 4
#include <stdio.h>
#include <algorithm>
#include <string.h>
#include <math.h>
using namespace std;
char s1[1005],s2[1005];
int d3[2005], d1[1005],d2[1005];
int main()
{
while(scanf("%s %s",s1,s2)!=EOF)
{
memset(d1,0,sizeof(d1));
memset(d2,0,sizeof(d2));
memset(d3,0,sizeof(d3));
int len1=strlen(s1),len2=strlen(s2);
for(int i=0;i<len1;i++) d1[i]=s1[i]-'0';
for(int i=0;i<len2;i++) d2[i]=s2[i]-'0';
int len = len1>len2?len2:len1,num=0,cy=0;//注意进位位一直在变化
for (int i=0;i<len;i++)
{
d3[num++] = (d1[len1-1-i]+d2[len2-1-i]+cy)%10;
cy = (d1[len1-1-i]+d2[len2-1-i]+cy)/10;
}
if (len1>len2)
{
for(int i=len;i<len1;i++)
{
d3[num++] = (d1[len1-1-i]+cy)%10;
cy = (d1[len1-1-i]+cy)/10;
}
}
if (len1<len2)
{
for(int i=len;i<len2;i++)
{
d3[num++] = (d2[len2-1-i]+cy)%10;
cy = (d2[len2-1-i]+cy)/10;
}
}
else {
if (cy) d3[num++]=cy;
}
for(int i=num-1;i>=0;i--)
printf("%d",d3[i]);
printf("\n");
}
return 0;
}