这段代码的目的是判断一个整数中是否有相邻的两位数字相同。它从右向左逐位比较相邻的数字,如果找到相同的一对,就输出YES,否则输出NO。 代码的主要问题在于循环条件和比较逻辑。 - 循环条件 `while (n >= 0)` 会导致无限循环,因为当n变成0时,条件仍然成立,而0除以10还是0,无法退出循环。你应该考虑当n小于10时,已经没有相邻的两位可以比较了。 - 比较逻辑中,`pre=(n/10)%10` 在n只有一位数时,pre会变成0,这可能导致误判。例如输入5,last=5,pre=0,它们不相等,但循环不会停止,最终n变成0后,last=0,pre=0,就会错误地输出YES。