C 程序不执行 else 语句

  • 本文关键字:else 语句 执行 程序 c
  • 更新时间 :
  • 英文 :


我的程序执行if语句,但不执行else子句。以下是代码的条件: 对于区间 [a,b] 中的每个整数 n(作为输入给出(: 1 如果 1<=n<=9,则以小写形式打印它的英文表示形式。即"一"代表 1,"二"代表 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("%dn%d", &a, &b);
for(n=a;n<=b;n++)
{
if (1<=n<=9)
printf("%sn", English+n);
else
{
if(n%2==0)
printf("evenn");
else
printf("oddn");
}
}
return 0;
}

输入:

8
11

输出:

eight
nine
♂

预期输出:

eight
nine
even
odd

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

if (1<=n<=9)

它应该是

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

https://godbolt.org/z/hQu4w9

最新更新