在线编译器 C

#include <stdio.h> int main() { int a; scanf("%d",&a); if(100<a<=1000) printf("YES"); else printf("NO"); return 0; }
这段代码的目的是判断输入的整数是否在100到1000之间(包含边界?),但条件判断有逻辑问题。

- 在C语言中,`100<a<=1000` 并不会按数学方式比较。它会被解析为 `(100<a) <= 1000`,先计算 `100<a` 得到0或1,再与1000比较,结果永远为真,所以程序总是输出"YES"。

- 要检查一个数是否在区间内,需要分别比较两个边界,并用逻辑运算符连接,比如 `a > 100 && a <= 1000`。注意边界是否包含100和1000,根据题目要求调整。