在线编译器 C

#include <stdio.h> int main() { int N,A=0,B=0; scanf("%d",&N); while(N>=100) { A = N%10; B = (N/100)%100; if(A == B) { printf("YES"); return 0; } N = N/10; } printf("NO"); return 0; }
这段代码的目的是判断一个整数中是否存在某两位数字相等。它从个位和百位开始比较,然后不断去掉最后一位继续检查。

- 你的循环条件是 `N>=100`,这意味着当数字小于100时循环直接结束,但小于100的数字也可能有两位相等(比如11、22),你的程序会直接输出NO,这是不完整的。
- 变量B的计算方式 `(N/100)%100` 取的是百位和十位组成的两位数,而不是单独的一位数字。你实际上想比较的是个位和百位这两个单独的数字,而不是两位数字组成的数。