我需要在数组中找到 3 个最大的数字,然后将它们相加。
例如: 输入:3 4 7 10 11 16 16 23 26 输出:3个最大偶数的和是:16,16,26。和是58
在我的代码中,我得到了奇怪的输出,例如“16, 1245782582792, 1”。
注意:我只能使用 ifs/else、for/while 循环和数组。
#include <stdio.h>
最佳答案
这里有一些问题:
您应该只检查已定义的数组条目。相反,您查看的是整个数组,包括从
nNumbers
到MAX_NUMBERS-1
的未定义部分。您可能会在那里获得垃圾值。将for
循环更改为:for (i = 0; i < nNumbers; i++)
您正在将
greatest1
等初始化为数组中的第一个数字。如果该数字是奇数并且恰好大到足以阻止您要查找的偶数,则此方法不起作用。如果最大偶数之一出现多次,您将忽略重复项。例如,如果最大数字是 1000,并且出现了 3 次,您可能希望将所有三个数字相加并返回 3000。您可以通过跟踪您选择的索引来解决此问题,并且仅在索引匹配时拒绝重复项,而不是值。
关于c - 如何用C找到数组中3个最大的偶数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36904154/