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

统计数字范围内特定数字出现次数的C++代码运行异常求助

解决数字范围中指定数字出现次数统计的代码问题

我看到你在统计指定数字范围里数字2的出现次数时遇到了代码无法运行的问题,结合你给出的代码片段,我帮你梳理下问题点并给出修复方案:

原代码的核心问题

  • 函数未实现:你只在main里声明了nofNum函数,但没有写具体的函数逻辑,编译器找不到函数体就会报错
  • 语法不完整:return...语句没有写完,正确应该是return 0;,这会直接导致编译失败
  • (可选优化)在C++中,函数声明放在main函数外部会更符合编码规范,避免作用域问题

修复后的完整代码

#include <iostream>
#include <cstdio>
using namespace std;

// 统计单个数字中2出现的次数
int nofNum(int num) {
    int count = 0;
    while (num > 0) {
        if (num % 10 == 2) {
            count++;
        }
        num = num / 10;
    }
    return count;
}

int main(){
    int lowerbound, upperbound, sum = 0;
    scanf("%d %d", &lowerbound, &upperbound);
    for (int i = lowerbound; i <= upperbound; ++i) {
        sum += nofNum(i);
    }
    printf("%d", sum);
    return 0;
}

关键逻辑解释

  • nofNum函数:通过循环取数字的每一位(num % 10获取个位),判断是否为2,统计次数后将数字除以10(去掉个位),直到数字变为0
  • 主函数:遍历从lowerbound到upperbound的所有数字,累加每个数字中2的出现次数,最后输出总和

测试输入2 22时,程序会输出6,和你预期的结果一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:56:11