为什么我的'if'语句被跳过了?

时间:2014-02-01 23:50:53

标签: c if-statement

我是C的新手,需要帮助解决这个问题。我想通过一个数组来检查数组的所有元素是否都是0-9的数字。如果他们不是,我想打印假,如果他们是,我想打印真实。由于某种原因,我的if语句被跳过,而我刚刚返回false五次。谢谢!

#include <stdio.h>

int main()
{
    int array[5] = {1, 2, 3, 15, 24};
    int i;
        for (i = 0; i < 5; i++) {
            if (array[i] >= '0' && array[i] <= '9') {
            printf("True\n");
            }
        else
        {
        printf("False\n");
        }
    }
}

2 个答案:

答案 0 :(得分:3)

数组的所有元素都不在'0'之上,因为'0'在ASCII中是十进制的。

因此,对于您的示例,最高int为24,没有一个元素满足您的if条件。

将其更改为:

if (array[i] >= 0 && array[i] <= 9) {

答案 1 :(得分:0)

删除'',因为您没有使用字符串。 相反,使用这个:

if (array[i] >= 0 && array[i] <= 9) {