[英]C Program Not Executing Else Statement
我的程序执行 if 语句但不执行 else 子句。 以下是代码的条件: 对于每个 integer,n,在区间 [a,b] 中(作为输入给出): 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("%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
Output:
eight
nine
♂
预期 Output:
eight
nine
even
odd
它在 C 中不起作用。 它总是评估真相。 为什么? 1 <= n
的结果是0
或1
。 两者总是小于9
if (1<=n<=9)
它应该是
if (n >= 1 && n <= 9)
printf("%s\n", English[n]);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.