C++中如何求序列中最大元素的出现次数?

How to find the occurrence count of sequence's largest element in C++?

这里是 C++ 初学者。我正在尝试编写一个 不使用数组 的程序,它需要一个 N 数字并允许用户编写一个由 N 数字组成的元素序列(例如 N5,则元素序列应由5个整数组成(如8,21,7, 21,10))。然后程序应该计算序列的最大元素出现了多少(在这个例子中输出应该是2,因为最大数量是21,出现 2 次)。 这是我到目前为止编写的代码,它检测序列的最大数字。

#include <iostream>
#include <limits.h>
using namespace std;

int main() {
  int n , n_seq, count = 0;
  int max = INT_MIN;
  
  
  cin>>n;
  for(int i = 0; i < n; i++)
  {
    cin>>n_seq;

    if(n_seq > max)
    {
      
      max = n_seq;
      
    }    
  }  
  cout<<max;
}

但我无法弄清楚每次出现最大数字时如何增加 count 变量的其余部分。

您需要在 n_seq == max 时增加计数,当您遇到新的最大数时您需要重置计数器:

if(n_seq > max)
{
  counter = 1;
  max = n_seq;
  
} else if (n_seq == max) {
   ++count;
}
#include <iostream>
#include <limits.h>

using namespace std;

int main() {
    int n, n_seq, count = 0;
    int max = INT_MIN;


    cin >> n;
    for (int i = 0; i < n; i++) {
        cin >> n_seq;

        if (n_seq > max) {
            count = 1;
            max = n_seq;
        } else if(max == n_seq)
            ++count;

    }
    std::cout << max << std::endl;
    std::cout << count << std::endl;
}
#include <iostream>
#include <limits.h>
using namespace std;

int main() {
  int n , n_seq, count = 0;
  int max = INT_MIN;
  
  
  cin>>n;
  for(int i = 0; i < n; i++)
  {
    cin>>n_seq;

    if(n_seq > max)
    {          
      max = n_seq;
      count = 1;
    }    
    else if(n_seq == max){
      count++;
    }
  }  
  cout<<max;
}