Online Compiler C

#include <stdio.h> int main() { int n,n0=0,n1=0,n2=0,n3=0,n4=0,n5=0,n6=0,n7=0,n8=0,n9=0,y; scanf("%d",&n); while(n!=0){y=n%10; n=n/10; if(y==0) n0++ if(y==1) n1++ if(y==2) n2++ if(y==3) n3++ if(y==4) n4++ if(y==5) n5++ if(y==6) n6++ if(y==7) n7++ if(y==8) n8++ if(y==9) n9++ if(n0==2||n1==2||n2==2||n3==2||n4==2||n5==2||n6==2||n7==2||n8==2||n9==2) printf("YES"); else{printf("NO"); }} return 0;
这段代码的目的是判断一个整数中是否有某个数字出现了至少两次。它通过不断取余和整除来提取每一位数字,然后用多个变量分别统计每个数字出现的次数。

代码中存在语法错误:每个 `if` 语句后面的 `n0++` 等语句缺少分号。C语言中每条语句必须以分号结束,否则编译器会报错。

- 检查每个 `if` 语句后面的递增操作,确保它们都有分号。
- 注意逻辑:当前代码在每次提取一位数字后都会检查是否有数字出现两次,这会导致在数字还没处理完时就输出结果。考虑是否应该在所有数字都统计完毕后再进行判断。