看到这道题本以为是一道送分题,但改了几次才把这道题作对
思路:
1.题目说是把数据从小到大输入,则可以用数组储存下来
2.遍历数组,寻找出现次数最多的数
细节注意:
1.第一行输入的N值不一定符合题目要求,需要筛选
2.统计到最后一个数的时候要判断,如果与前面一个数不相等可以处理,但如果与前一个数相等则需要另行判断
代码如下:
#include<iostream>
using namespace std;
int main(){
int n,a[20],temp,max,t,i,count=0;
cin>>n;
if(n>0&&n<=20){
for(i=0;i<n;i++)
cin>>a[i];
max=-1;//最大的出现次数
count=1;//第一位计数
temp=a[0];//将最大的预设为temp
for(i=1;i<n;i++){
if(temp==a[i])//如果与上一个数相等,则计数
count++;
else if(temp!=a[i]){//当不与上一个数相等的时候
if(count>max){
max=count;//最大次数赋值为count
t=temp; //最大值计为t
}
count=1;
temp=a[i];
}
if(i==n-1){
if(count>max){
max=count;//最大次数赋值为count
t=temp; //最大值计为t
}
}
}
cout<<t<<endl;
}
return 0;
}
~~