C++中如何求序列中最大元素的出现次数?
How to find the occurrence count of sequence's largest element in C++?
这里是 C++ 初学者。我正在尝试编写一个 不使用数组 的程序,它需要一个 N 数字并允许用户编写一个由 N 数字组成的元素序列(例如 N为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 变量的其余部分。
您需要在 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;
}
这里是 C++ 初学者。我正在尝试编写一个 不使用数组 的程序,它需要一个 N 数字并允许用户编写一个由 N 数字组成的元素序列(例如 N为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 变量的其余部分。
您需要在 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;
}