C程序未执行其他语句

时间:2020-06-20 15:06:09

标签: c

我的程序执行if语句,但不执行else子句。以下是代码的条件: 对于间隔[a,b](作为输入)的每个整数n: 1如果1 <= n <= 9,则以小写形式打印其英文表示。即“ 1”代表1,“ 2”代表2,依此类推。 2如果n> 9并且它是偶数,则打印“偶数” 3.如果n> 9并且它是一个奇数,则打印“奇数”

第一个条件可以正常工作,但是当代码到达else子句时,将显示一个符号。

代码:

    #include <stdio.h>

    #include <stdio.h>

    #include <string.h>

    #include <math.h>

    #include <stdlib.h>

    int main()

    {

    int a, b, n;

    char English[10][10]={"","one","two","three","four","five","six","seven","eight","nine"};

    scanf("%d\n%d", &a, &b);

    for(n=a;n<=b;n++)
    {
     if (1<=n<=9)
         printf("%s\n", English+n);

     else
        {
        if(n%2==0)
         printf("even\n");

        else
         printf("odd\n");
        }
}

return 0;
    }

输入:

    8
    11

输出:

    eight
    nine
    ♂

预期输出:

    eight
    nine
    even
    odd

1 个答案:

答案 0 :(得分:1)

它在C语言中不起作用。它总是求真。为什么? 1 <= n的结果是01。两者总是小于9

if (1<=n<=9)

应该是

     if (n >= 1 && n <= 9)
         printf("%s\n", English[n]);

https://godbolt.org/z/hQu4w9

相关问题