题目地址:点击打开链接
思路:水题一道,结果题没看清,输出的小细节也没注意,结果wrong了
错误代码:
#include <iostream> #include <cstdio> #include <cstring> using namespace std; int a[10010]; int main() { int n,i,x; while(scanf("%d",&n) != EOF) { memset(a,0,sizeof(a)); for(i=0; i<n; i++)//标号不是到n而是到0<=ai<10000注意有0 { scanf("%d",&x); a[x]++; } for(i=1; i<=n; i++) { if(a[i] > n/2) { printf("%d\n",i); break; } } if(i > n) printf("-1\n"); } return 0; }
#include <iostream> #include <cstdio> #include <cstring> using namespace std; int a[10010]; int main() { int n,i,x; while(scanf("%d",&n) != EOF) { memset(a,0,sizeof(a)); for(i=0; i<n; i++) { scanf("%d",&x); a[x]++; } for(i=0; i<10000; i++) { if(a[i] > n/2) { printf("%d\n",i); break; } } if(i >= 10000)//注意有等于,不然永远也不可能输出-1 printf("-1\n"); } return 0; }