簡體   English   中英

如何在數組中找到最大的和第二大的

[英]How to find the largest and the second largest in a array

我有一個數組,我試圖在數組中找到最大和第二大的數字,但使用我的代碼

void FindNum(int arr[],int size){
int first;
int second;

for (int i = 0;i<size;i++){
  first = max(first,arr[i]);
}

cout<<"Largest number is "<<first<<endl;
for(int i =0; i<size;i++){
  if(arr[i] != first)
    second =max(second,arr[i]);
}
 cout<<"Second largest is "<<second<<endl;
}

#include <iostream>
#include <cmath>
using namespace std;

int main() {
int nums[] = {13,15,4,16,3,11,6,18};


int n = (sizeof(nums) / sizeof(nums[0]));
FindNum(nums,n);
}

第二個的output出來是32681

只需遍歷數組並存儲 2 個最大值。

#include <iostream>
#include <climits>

int main() {
    int biggest = INT_MIN; // initial value
    int secondBiggest = INT_MIN;  // initial value
    int nums[] = {/*Some value*/ };
    const int n = (sizeof(nums) / sizeof(nums[0]));

    for (int i = 0; i < n; i++) {
        if (nums[i] > biggest) {
            secondBiggest = biggest;
            biggest = nums[i];
        }
        else if (nums[i] > secondBiggest) {
            secondBiggest = nums[i];
        }
    }

    std::cout << biggest << "\t" << secondBiggest;
}
     

注意:我們用 'INT_MIN' 初始化了 'biggest' 和 'secondBiggest',因此,數組的第一個和第二個元素可以替換這兩個值。

暫無
暫無

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

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