遍历并行数组以确定C++中的最大数字

Iterating through parallel array's to determine the largest number in C++

本文关键字:数字 C++ 并行 数组 遍历      更新时间:2023-10-16

我是堆栈溢出和C++的新手,所以如果我以不正确的格式问这个问题,请原谅。我正在努力回答以下问题,我也在下面发布了我的代码,请问我可以寻求一些指导吗?

使用两个并行阵列来跟踪每个阵列的订阅数 50种出版物。数组"出版物"包含出版的杂志和报纸的名称 数组"订阅"保存每个相应杂志的订阅数量或 报纸。你必须编写一个名为findMostSubs的void函数来确定哪个出版物 拥有最多的订阅者。函数 findMostSubs 必须返回发布的名称以及该发布的订阅者数。 假设以下全局常量:NUM_PUBS = 50;

#include <iostream>
using namespace std;
const int NUM_PUBS = 5;
void findMostSubs(string pubsP[NUM_PUBS], int subsP[NUM_PUBS], string mostSubsP, int nrMostSubsP)
{
for (int i; i < NUM_PUBS; i++)
{
cout << "Please enter the name of the publication: ";
cin >> pubsP[i];
cout << "Please enter the number of subscriptions: ";
cin >> subsP[i];
}

for (int i; i < NUM_PUBS; i++)
{
nrMostSubsP = 0;
if (subsP[i] > nrMostSubsP)
{
nrMostSubsP = subsP[i];
cout << nrMostSubsP;
}
}
}
int main()
{
string publications[NUM_PUBS];
int subscriptions[NUM_PUBS];
int nrMostSubscriptions;
string mostSubscriptions;
findMostSubs(publications, subscriptions, mostSubscriptions, nrMostSubscriptions);
return 0;
}

findMostSub 的最后两个参数应该声明为引用,以将它们用作输出:

void findMostSubs(string pubsP[NUM_PUBS], int subsP[NUM_PUBS], string& mostSubsP, int& nrMostSubsP)
{
for (int i; i < NUM_PUBS; i++)
{
cout << "Please enter the name of the publication: ";
cin >> pubsP[i];
cout << "Please enter the number of subscriptions: ";
cin >> subsP[i];
}
nrMostSubsP = subsP[0];   
mostSubsP = pubsP[0];
for (int i = 1; i < NUM_PUBS; i++)
{
if (subsP[i] > nrMostSubsP)
{
nrMostSubsP = subsP[i];
mostSubsP = pubsP[i];
}
}
}
int main()
{
string publications[NUM_PUBS];
int subscriptions[NUM_PUBS];
int nrMostSubscriptions;
string mostSubscriptions;
findMostSubs(publications, subscriptions, mostSubscriptions, nrMostSubscriptions);
cout << "Most Subscriptions : " << mostSubscriptions << " , " << nrMostSubscriptions << endl;
return 0;
}