簡體   English   中英

如何用C查找數組中的3個最大偶數?

[英]How to find 3 largest even numbers in an array with C?

我需要在數組中找到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>

這里有一些問題:

  1. 您應該只檢查定義的數組條目。 相反,您正在查看整個數組,包括從nNumbersMAX_NUMBERS-1的未定義部分。 您可能會在那里撿垃圾值。 for循環更改for

     for (i = 0; i < nNumbers; i++) 
  2. 您正在將greatest1等初始化為數組中的第一個數字。 如果數字為奇數並且碰巧足以阻止您要查找的偶數,則該方法將不起作用。

  3. 如果最大偶數之一出現多次,則將忽略重復項。 例如,如果最大數字是1000,並且發生了3次,則您可能希望將所有三個數字相加並返回3000。可以通過跟蹤所選索引來解決此問題,並且如果索引匹配則僅拒絕重復項,而不是價值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM