Discuz! Board

 找回密码
 立即注册
查看: 26|回复: 0

老师这题为什么这样做

[复制链接]

13

主题

14

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
10663
发表于 2025-6-29 22:47:28 | 显示全部楼层 |阅读模式
training/380/problem/CD202203_2_2:
#include <iostream>
using namespace std;
// 计算数字各位之和的函数
int sumDigits(int num) {
    int sum = 0;
    while(num > 0) {
        sum += num % 10;  // 取最后一位
        num /= 10;        // 去掉最后一位
    }
    return sum;
}
int main() {
    int n;
    cin >> n;  // 读取数字个数

    int nums[1000];  // 题目说n≤1000
    for(int i = 0; i < n; i++) {
        std::cin >> nums;  // 读取数字序列
    }
    // 冒泡排序(新手易懂)
    for(int i = 0; i < n-1; i++) {
       for(int j = 0; j < n-i-1; j++) {
            int sum1 = sumDigits(nums[j]);
            int sum2 = sumDigits(nums[j+1]);
            if(sum1 < sum2 ||
              (sum1 == sum2 && nums[j] < nums[j+1])) {
                int temp = nums[j];
                nums[j] = nums[j+1];
                nums[j+1] = temp;
            }
        }
    }
    // 输出结果
    for(int i = 0; i < n; i++) {
        cout << nums << " ";
    }
    return 0;
}

画荧光的地方有问题

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|DiscuzX

GMT+8, 2025-7-17 04:35 , Processed in 0.052400 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.. 技术支持 by 巅峰设计

快速回复 返回顶部 返回列表