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

C语言无数组统计num2在num1中出现次数及取对应末尾位数求助

实现方案

核心逻辑:要获取整数末尾的n位,只需对10的n次方取模即可,例如要取最后2位就对100取模,余数就是末尾2位的数值。

具体实现步骤

  • 先修正基础语法错误:scanf需要传入变量地址,将原有输入代码修改为:
    scanf("%d%d", &num1, &num2);
    
  • 统计完num2的位数counter后,不要直接用counter做模运算,先通过整数循环计算模值(不要用pow函数,浮点数运算会有精度丢失问题):
    int mod = 1;
    for(int i = 0; i < counter; i++){
        mod *= 10;
    }
    
  • 后续要获取num1当前末尾对应位数的数值,直接计算即可:
    int last_digits = copy1 % mod;
    

额外注意点

你现有代码中交换num1和num2的逻辑不符合需求:如果num1本身的数值小于num2,说明num2不可能在num1中出现,直接返回0即可,不需要交换两个数的数值,否则会变成统计num1在num2中的出现次数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 06:45:04