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

C语言编程:如何判断数字是否存在右数第三位并正确输出?

解决C语言判断数字右数第三位的问题

核心判断逻辑

要确定数字的右数第三位是否存在,只需要判断数字的绝对值是否大于等于100:

  • 当绝对值≥100时,数字至少有三位,右数第三位存在;
  • 当绝对值<100时,数字不足三位,右数第三位不存在。

用abs()函数可以统一处理正负数字,需要包含头文件<stdlib.h>。

修改后的完整代码

#include <stdio.h>
#include <stdlib.h>

int main() {
    printf("enter num\n");    
    int num = 0;    
    if(scanf("%d", &num) < 1){     
        printf("that's not a number");     
        return 1;    
    }

    if (abs(num) >= 100) {
        // 存在右数第三位,输出该位的数值(不含符号)
        printf("%d\n", (abs(num) / 100) % 10);
    } else {
        // 不存在则输出0
        printf("0\n");
    }

    return 0;
}

代码细节说明

  • abs(num):取数字绝对值,同时解决负数的位数判断和数值位计算问题;
  • (abs(num) / 100) % 10:先将数字除以100去掉最后两位,再取模10得到右数第三位的数值;
  • 分支判断明确区分了“存在该位”和“不存在该位”的情况,避免了单纯计算结果为0时的歧义。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 20:20:55