欢迎光临散文网 会员登陆 & 注册

C++某题(函数体+排序问题)

2022-10-10 18:14 作者:讽刺派数学家  | 我要投稿


题目描述

输入n个不超过30000的整数(n≤10)。然后求出每个数的数字和,再按每个数的数字和由小到大排列输出。

输入格式

第一行为整数n 

第二行为n个整数

输出格式

由小到大排列的每个数的数字和(每个数之间保留一个空格)

样例输入


4

33 104 87 16


样例输出


5 6 7 15



#include<bits/stdc++.h>

using namespace std;

int jsszh(int a)//计算数字和 

{

if(a<10)

{

return a;

}

if(10<a&&a<100)

{

return a%10+a/10;

}

if(100<a&&a<1000)

{

int b,c,d;

b=a/100;

c=(a-100*b)/10;

d=a-b*100-c*10;

return b+c+d;

}

if(1000<a&&a<10000)

{

int b,c,d,e;

b=a/1000;

c=(a-1000*b)/100;

d=(a-b*1000-c*100)/10;

e=a-b*1000-c*100-d*10;

return b+c+d+e;

}

if(10000<a&&a<30001)

{

int b,c,d,e,f;

b=a/10000;

c=(a-10000*b)/1000;

d=(a-b*10000-c*1000)/100;

e=(a-b*10000-c*1000-d*100)/10;

f=a-b*10000-c*1000-d*100-e*10;

return b+c+d+e+f;

}

}

int main()

{

int n,a[15],b[15];

cin>>n;

for(int i=1;i<=n;i++)

{

cin>>a[i];

}

for(int i=1;i<=n;i++)

{

b[i]=jsszh(a[i]);

}

for(int i=1;i<=n;i++)

{

int tmp=0;

for(int j=1;j<=i;j++)

{

if(b[i]<b[j])

{

tmp=b[j];

b[j]=b[i];

b[i]=tmp;

}

}

}

for(int i=1;i<=n;i++)

{

cout<<b[i]<<' ';

}

}


C++某题(函数体+排序问题)的评论 (共 条)

分享到微博请遵守国家法律