蓝桥杯算法训练 出现次数最多的整数C++

题目链接:http://lx.lanqiao.cn/problem.page?gpid=T222

在这里插入图片描述

思路:

输入的一组整数是按照从大到小的顺序排列的,从第一个开始,将后面的与之比较,如果相同就count++,如果不同直接比对下一个数。(temp后移)

一开始一直在纠结要是不是按照从小到大的顺序排列,而是随机的要怎么写…

注意:输入数据n有范围,大于1小于20。

代码:

#include <bits/stdc++.h>
using namespace std;
int main()
{
	int n;
	cin>>n;
	if(n<1||n>20)return 0;
	int num[n];
	for(int i=0;i<n;i++)
		cin>>num[i];
	int temp=num[0];
	int maxnum=1,count=1,maxcount=1;
	for(int i=1;i<n;i++)
	{
		if(temp==num[i])count++;
		else {temp=num[i];count=1;}
		if(count>maxcount)
		{
			maxcount=count;
			maxnum=temp;
		}
	}
	cout<<maxnum<<endl;
	return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_42324771/article/details/86911873