Online Compiler C

#include <stdio.h> int main() { int num; scanf("%d",&num); int a,b=0; while(num>0) { a=num%10; b=num/10; } if(a==b) { printf("YES\n"); } else { printf("YNO\n"); } return 0; }
这段代码试图判断一个整数的第一位和最后一位数字是否相同,但逻辑有误。代码中,while循环会无限运行,因为循环内没有改变num的值,导致num始终大于0。同时,变量a和b的赋值方式也不正确,b被赋值为num/10,而不是提取最后一位数字。

- 在while循环中,你需要更新num的值,否则循环会永远执行。通常的做法是每次循环时去掉num的最后一位数字,比如使用num = num / 10。
- 要比较第一位和最后一位数字,你需要分别提取它们。最后一位可以用num % 10得到,但第一位需要先知道num的位数,或者通过循环不断除以10直到num小于10来获得。注意,你的代码中b被赋值为num/10,这实际上是去掉最后一位后的剩余部分,而不是第一位数字。