输入一组数字(不能超过2000个),输出出现次数最多的那一个,如果有一样多的,则输出其中最小的那一个

输入一组数字(不能超过2000个),输出出现次数最多的那一个,如果有一样多的,则输出其中最小的那一个。
代码如下:

#include <iostream>
using namespace std;
constexpr int N = 2000;//宏定义常量
class number_information//创建类
{
private:   
       int len=0,max=0,i=0,j=0;    
       int s[N] = {0};//记录输入数据的数组
       int x[N] = {0};//记录重复次数的数组
       //全部给予初始化
public: 
       void show();
};
void number_information::show()//定义show函数
{   
    while(cin>>j)   
    {  
        s[i++] = j;
        if ('\n' == getchar())
            break;  
    }//写入任意小于2000的字符,并计入  
    len = i;//计入输入单个字符的总体长度   
    for(i=0; i<len; i++)  
    {        
        for(j=0; j<len; j++)      
        { //进行循环比较       
            if(s[i]==s[j])//进行值的比较,如果相同,则计入对应的x数组中,并+1            
            x[i]++;      
        }    
    }   
    for(i=0; i<len; i++)
    {        
        if(x[i]>x[max])//比较重复次数的多少       
          max=i;//一旦重复次数多,则提取出其对应的数组编号
        if (x[i] = x[max])
        {
            if (s[i] < s[max])
            {
                max = i;
            }
        }
    }   
    cout<<s[max]<<endl;//利用数组编号找到对应重复次数最多的值
} 
int main()
{    
    number_information number; 
    number.show();//调用number对象的show函数   
    system("pause");  
    return 0;
}

结果如下图:在这里插入图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值