wizen-coder
10/21/2018 - 9:44 AM

有一组整形数组,请返回一个两个元素的数组,元素值分别对应其中出现次数最多,且数值最大的数及其次数。如果有多个出现次数相同的数字,则输出数值大的那个。 输入:1 2 2 2 33 33 33 输出:33,3

有一组整形数组,请返回一个两个元素的数组,元素值分别对应其中出现次数最多,且数值最大的数及其次数。如果有多个出现次数相同的数字,则输出数值大的那个。 输入:1 2 2 2 33 33 33 输出:33,3

#include<iostream>
using namespace std;
int main()
{
  int tmp[100];
  for (int n = 0; n < 100; n ++) tmp[n] = 0;//初始化数组并赋值为0

  int num[100];    //int型数组用于存储输入变量
  int i = 0; //输入变量索引
  do
  {
    cin >> num[i];
    tmp[num[i]]++;
    i++;
  }
  while(cin.get() != '\n');
  int max = 0; //记录最大值
  int count = 0; //记录最大个数
  for(int j = 0; j < sizeof(tmp) / 4; ++j)
  {
    if(tmp[j] >= count)
    {
      count = tmp[j];
      max = j;
    }
  }
  cout << max << "," << count << endl;
}