当我需要知道最大值和谁实现了最大值时使用哪个容器?

calvin2011

我正在尝试通过网站进行初学者练习。

“需要:变量,数据类型和数值运算符基本的输入/输出逻辑(if语句,switch语句)循环(for,while,do-while)数组

编写一个程序,要求用户输入10个不同的人(人1,人2,...,人10)早餐吃的煎饼的数量。一旦输入了数据,该程序必须分析数据并输出哪个人早餐吃了最多的煎饼。”

我不确定如何让该程序召唤输入吃得最多的煎饼的人?当然,这需要使用键和值来完成,但是需求要求使用“数组”而不是“映射”?

下面是我想出的代码,但这仅输出所吃煎饼的最大数量,因此无法真正回答问题!

非常感谢您的帮助!

*在我不知道该怎么做之前,我只用了5个人来加快该过程*

#include <iostream>
using namespace std;

int main()
{
    cout << "how many pancakes did you eat for breakfast?" << endl;

    int person1, person2, person3, person4, person5;
    cout << "Person 1: ";
    cin >> person1;

    cout << "Person 2: ";
    cin >> person2;

    cout << "Person 3: ";
    cin >> person3;

    cout << "Person 4: ";
    cin >> person4;

    cout << "Person 5: ";
    cin >> person5;

    int array[5] = {person1, person2, person3, person4, person5};
    int temp = 0;

    for (int i = 0; i<5; i++)
    {
        if (array[i] > temp)
        {
        temp = array[i];
        }
    }
    cout << "The most pancakes eaten was " << temp << "by " <<  endl;

}
谢尔盖·卡里尼琴科(Sergey Kalinichenko)

当然,这需要通过键和值来完成

这不是唯一的方法。另一种方法是使用没有键的索引集合,并假设位置k对应于k可以仅从位置计算出的键例如,如果您有一个十个项目的数组,分别对应十个编号为1到10的人,那么一个人编号的数据k可以存储在array中的position处k-1在这种情况下,不需要任何键。

这个冗长的解释意味着,如果您i除了存储best之外还存储了best ,则tmp在循环之后您将得到答案:

int temp = 0;
int res = -1;
for (int i = 0; i<5; i++) {
    if (array[i] > temp) {
        temp = array[i];
        res = i;
    }
}
cout << "The most pancakes eaten was " << temp << "by " <<  (res+1) << endl;

请注意,res+1已打印,而不是res这是因为数组是从零开始的,而计数是从一开始的。

可以使用将初始元素作为当前最佳元素并从以下位置开始迭代的惯用语来进一步缩短此时间1

int res = 0;
for (int i = 1 ; i<5 ; i++) {
    if (array[i] > array[res]) {
        res = i;
    }
}
cout << "The most pancakes eaten was " << array[res] << "by " <<  (res+1) << endl;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

预期的最大值

来自分类Dev

使用if语句确定最大值

来自分类Dev

使用折叠的列表的局部最大值

来自分类Dev

SQL:使用最大值过滤行

来自分类Dev

分组时选择最大值的记录

来自分类Dev

varchar的最大值

来自分类Dev

每行的最大值

来自分类Dev

AND运算的最大值

来自分类Dev

当我在数组中找到最大值时,如何找出它的顺序?

来自分类Dev

当我尝试查找每行具有最大值的列名时,为什么`idxmax`会引发错误?

来自分类Dev

使用SIMD优化列式最大值

来自分类Dev

选择最大值时如何选择最大日期值

来自分类Dev

当我仅输入最小值时,它将最大值视为零,并向我返回空数据

来自分类Dev

每行的最大值

来自分类Dev

JTextField的最大值

来自分类Dev

测试表的最大值时出错?

来自分类Dev

使用保留来跟踪最大值

来自分类Dev

我如何找出数组中哪个元素的最大值?

来自分类Dev

加载页面时,我需要在标签框中显示列的最大值(在表中)

来自分类Dev

使用反向模式时,ValueAnimator不会达到最大值

来自分类Dev

计算最大值

来自分类Dev

使用OpenMP的数组中的最大值

来自分类Dev

无法使用注释获取最大值

来自分类Dev

选择最大值而不使用最大值?

来自分类Dev

选择的最大值

来自分类Dev

哪个指针值是 malloc 调用的最大值

来自分类Dev

使用下标时最大值返回错误结果

来自分类Dev

使用 subQuery SQL 选择最大值

来自分类Dev

需要 int 中的最大值