c语言如何判断一个数是否为三位数

c语言如何判断一个数是否为三位数

作者:William Gu发布时间:2026-03-23阅读时长:0 分钟阅读次数:5

用户关注问题

Q
怎样用C语言判断一个整数是否在三位数范围内?

我想使用C语言判断用户输入的一个数是否是一个三位数,该如何实现这个功能?

A

判断三位数的基本方法

在C语言中,可以通过判断一个整数是否大于等于100且小于等于999,或者在-999至-100之间来确认它是否为三位数。示例代码如下:

int num;
scanf("%d", &num);
if ((num >= 100 && num <= 999) || (num <= -100 && num >= -999)) {
    printf("这是一个三位数\n");
} else {
    printf("这不是一个三位数\n");
}
Q
如何判断负数是不是三位数?

负数也能是三位数吗?用C语言怎么判断负数的位数?

A

处理负数时判断位数的方法

三位数包含正三位数和负三位数,如 -123 是一个三位数。判断负数时可以先取绝对值,然后判断绝对值是否在100到999之间。示例如下:

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

int main() {
    int num;
    scanf("%d", &num);
    int abs_num = abs(num);
    if (abs_num >= 100 && abs_num <= 999) {
        printf("这是一个三位数\n");
    } else {
        printf("这不是一个三位数\n");
    }
    return 0;
}
Q
用字符串方法判断三位数的优缺点有哪些?

除了数值范围判断外,能不能用字符串方式判断输入的数字是否是三位数?有什么利弊?

A

字符串判断法及其优缺点

可以将输入的数字转换为字符串,然后判断字符串长度是否为3。优点在于逻辑直观且适合处理输入的格式问题,无需考虑正负号。缺点是需要额外的字符串操作,比较消耗资源,并且可能受到输入格式(如空格、符号等)的影响。示例代码:

#include <stdio.h>
#include <string.h>

int main() {
    char str[20];
    scanf("%s", str);
    int len = strlen(str);
    if ((str[0] == '-' && len == 4) || (str[0] != '-' && len == 3)) {
        printf("这是一个三位数\n");
    } else {
        printf("这不是一个三位数\n");
    }
    return 0;
}