输入一组数字(不能超过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;
}
结果如下图: