You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++实现整数各位逆序打印及指定编程作业需求咨询

问题解答:C++逆序打印整数各位 & 实现PrintDigits函数

嘿,我来帮你搞定这两个问题!咱们先理清楚核心思路,再上完整的代码实现。

1. 逆序打印整数各位的核心逻辑

要逆序输出一个整数的各位数字,其实就两步循环操作,再处理一个特殊情况:

  • 先忽略正负号(负号不属于数字位),用绝对值统一处理所有整数
  • 用% 10取当前数字的个位,打印出来
  • 用/ 10去掉已经打印的个位,让下一位变成新的个位
  • 重复上面两步直到数字变为0
  • 特殊情况:如果输入是0,得单独打印0,不然循环不会触发

2. 完整代码实现

下面是完全符合要求的PrintDigits函数和main函数,注释已经写得很清楚了:

#include <iostream>
#include <cstdlib> // 用于abs()函数取绝对值

// 定义PrintDigits函数:接收整数,逆序打印各位数字(每行一个),返回打印的数字个数
int PrintDigits(int num) {
    int count = 0;
    // 处理输入为0的特殊情况
    if (num == 0) {
        std::cout << 0 << std::endl;
        return 1;
    }
    // 取绝对值,统一处理正负数字
    int abs_num = abs(num);
    while (abs_num > 0) {
        // 获取当前个位数字
        int digit = abs_num % 10;
        // 打印数字,每行一个
        std::cout << digit << std::endl;
        // 去掉已打印的个位数字
        abs_num /= 10;
        // 计数加1
        count++;
    }
    return count;
}

int main() {
    int num1, num2;
    // 获取用户输入的两个整数
    std::cout << "请输入第一个整数:";
    std::cin >> num1;
    std::cout << "请输入第二个整数:";
    std::cin >> num2;

    // 处理第一个数并输出结果
    std::cout << "\n第一个数的逆序各位数字:" << std::endl;
    int count1 = PrintDigits(num1);
    std::cout << "共打印了 " << count1 << " 个数字\n" << std::endl;

    // 处理第二个数并输出结果
    std::cout << "第二个数的逆序各位数字:" << std::endl;
    int count2 = PrintDigits(num2);
    std::cout << "共打印了 " << count2 << " 个数字" << std::endl;

    return 0;
}

代码小说明:

  • 用abs()函数处理正负输入,确保不管是正数还是负数,都只打印数字部分的逆序
  • 单独处理num == 0的情况,避免遗漏0的输出
  • 每次循环都会打印一个数字并计数,最后返回总个数
  • main函数会提示用户输入两个整数,分别调用PrintDigits并展示结果和数字数量

举几个测试例子:

  • 输入123,会输出3、2、1,返回3
  • 输入-456,会输出6、5、4,返回3
  • 输入0,会输出0,返回1

内容的提问来源于stack exchange,提问作者Holly Thorsted

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:24:00