【问题标题】:How to find the occurrence count of sequence's largest element in C++?如何在 C++ 中找到序列中最大元素的出现次数?
【发布时间】:2020-10-30 20:51:09
【问题描述】:

这里是 C++ 初学者。我正在尝试编写一个不使用数组的程序,该程序将采用 N 个数字并允许用户编写由 N 个数字组成的元素序列(例如 N strong> 为 5,则元素序列应由 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 变量的其余部分。

【问题讨论】:

  • if (n_seq == max) count++?
  • 除了@AlanBirtles,如果发现新的最大值,计数器必须重置为 0。
  • @SebastianH 或为一,具体取决于测试的完成位置。
  • @SebastianH 我试图不完全为他们写作业......

标签: c++ loops max var find-occurrences


【解决方案1】:

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

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

【讨论】:

    【解决方案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) {
                count = 1;
                max = n_seq;
            } else if(max == n_seq)
                ++count;
    
        }
        std::cout << max << std::endl;
        std::cout << count << std::endl;
    }
    

    【讨论】:

      【解决方案3】:
      #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;
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-05-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-16
        • 1970-01-01
        • 2019-10-16
        • 2020-09-22
        相关资源
        最近更新 更多