问题描述:输入一个数n表示数组中元素个数,再输入数组元素,输出按元素各位数和大小排序的数组。如果各位数和相等,先输出原数据较大的一位。
输出形式:
每个元素之间有且只有一个空格
样例输入:
6
17 26 9 13 88 10
样例输出:
88 9 26 17 13 10
样例说明:
输入的各位数和分别为8 8 9 4 16 1
按大小排序为16 9 8 8 4 1
17 26的相同 但26<17 优先输出26
所以输出88 9 26 17 13 10
代码实现:
#include<iostream>
using namespace std;
int main()
{
int a=0,temp1,temp2, n, arr1[100], arr2[100] = { 0 };
cin >> n;
for (int i = 0; i < n; i++)
cin >> arr1[i];
for (int i = 0; i < n; i++)
{
int c = arr1[i];
while (c)
{
a = c % 10;
arr2[i] += a;//数组arr2用于接收输入数组的元素各位数和
c = c / 10;
}
}
for (int i = 0; i < n - 1; i++)
{
for (int j = 0; j < n - i - 1; j++)
{
if (arr2[j] < arr2[j + 1])//冒泡排序