问题遇到的现象和发生背景
标题
选号程序
类别
流程控制
时间限制
1S
内存限制
256Kb
问题描述
小明决定申请一个新的QQ号码,系统随机生成了若干个号码供他选择。小明的选号原则是:
- 选择所有号码中各位数字之和最大的号码。
- 如果有多个号码各位数字之和相同则选择数值最大的号码。
请你写一个程序帮助小明选择一个QQ号码。
输入说明
输入数据由两行构成,第一行为一个整数n表示有n个待选号码(0<n<100),第二行有n个正整数,表示各个待选的号码,每个号码长度不超过9位数。每个号码之间用空格分隔,且每个号码都不相同。
输出说明
输出根据小明的选号原则选出的号码。
输入样例
5
10000 11111 22222 333 1234
输出样例
22222
问题相关代码,请勿粘贴截图
#include<stdio.h>
void swap(int* a,int* b)
{
int t;
t=*a;
*a=*b;
*b=t;
}
int main()
{
int n,i=0,j=0,a[100],sum[100],b[i];
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d ",&a[i]);
}//输入数据
b[i]=a[i];
for(i=0;i<n;i++)
{
for(sum[i]=0;a[i]!=0;)
{
sum[i]=sum[i]+a[i]%10;
a[i]=a[i]/10;
}
}//sum[i]为各位数字之和
for(i=0;i<n-1;i++)
{
for(j=0;j<n-1-i;j++)
{
if(sum[j]>sum[j+1])
{
swap(&sum[j],&sum[j+1]);
swap(&b[j],&b[j+1]);
}
}
}//冒泡
printf("%d",b[n-1]);
return 0;
}