这题一开始我以为是一道水题,因为输入的数是从小到大顺序输入的,再一次降低了提莫的难度,但是一提交80分,但因为我不是VIP,只能看到一组测试数据,就开始反思分部调试看自己的代码,但确定自己代码没错后,就更奇怪了,难道这题不简单?我开始百度,原来是自己少考虑了 N<0和N=0的情况,加上去后终于AC了,还是自己审题,考虑不周呀。(如果你的得分只有80分,且是第6组和第7组错误,那么你没有考虑N<0和N==0的情况)
代码如下:
#include<iostream>
using namespace std;
int main(){
int n,a[20],b[20][2],count=1;
cin>>n;
if(n<=0)
{
return 0;
}
for(int i=0;i<n;i++){
cin>>a[i];
}
for(int p=0;p<n;p++){
for(int q=0;q<2;q++){
b[p][q]=0;
}
}
b[0][0]=a[0];
b[0][1]=1;
int flag=0;
for(int j=1;j<n;j++){
for(int k=0;k<count;k++){
if(a[j]==b[k][0]){
b[k][1]++;
flag=1;
break;
}
}
if(flag==0)
{
b[count][0]=a[j];
b[count][1]++;
count++;
}
else{
flag=0;
}
}
int array[10],max=b[0][1];
for(int wei=1;wei<n;wei++){
if(max<b[wei][1]){
max=b[wei][1];
}
}
int jj=0;
for(int zhi=0;zhi<n;zhi++){
if(b[zhi][1]==max){
array[jj]=b[zhi][0];
jj++;
}
}
int min=array[0];
for(int maxj=1;maxj<jj;maxj++){
if(min>array[maxj]){
min=array[maxj];
}
}
cout<<min<<endl;
return 0;
}