题目:
描述
给定一组n个正整数,根据各位数字之和从小到大进行排序。
输入
输入数据有多组,每组数据占一行,每行的第一个数正整数n,表示整数个数,后面接n个正整数。当n为0时,不作任何处理,输入结束。
输出
输出每组要求下原始数据排序的结果。
样例输入
2 1 2
3 121 10 111
0
样例输出
1 2
10 111 121
代码:
import java.util.Scanner;
public class Xingyuxingxi {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
while(sc.hasNext())
{
int a=sc.nextInt();
if(a==0)//输入a则跳出
{
break;
}
int []b=new int[a];
int []c=new int[a];
int d,e;
for (int i = 0; i < a; i++) {
b[i]= sc.nextInt();
d=b[i];
while(d!=0)
{
e=d%10;
d=d/10;
c[i]+=e;
}//求每个数组的数字之和,存入另一个数组中
}
for (int i = 0; i < a-1; i++) {//冒泡排序法
for (int j = 0; j < a-i-1; j++) {
if (c[j] > c[j + 1]) {//根据和的大小排序的同时,也将原先数组重新排序
int t = c[j];
c[j] = c[j + 1];
c[j + 1] = t;
t = b[j];
b[j] = b[j + 1];
b[j + 1] = t;
}
}
}
for (int i = 0; i < a; i++) {
if(i!=0) {
System.out.print(" ");
}
System.out.print(b[i]);
}
System.out.println();
}
}
}
1424

被折叠的 条评论
为什么被折叠?



