求陣列的最大值 第二大值

2021-07-10 16:01:36 字數 1768 閱讀 3043

注意:陣列的最大值同時存在多個的情況!

(1) 對比findmax2和findmax22兩個函式的處理,細微差別導致結果不同!

(2) 當陣列作為函式形參時,如果是常量陣列,則最好新增const

(3) sizeof(arr)/sizeof(int)

(4) 隨機數生成:

srand((unsigned)time(null));

rand() % randomnum; //生成randomnum以內的隨機數

#include "stdafx.h"

#include

#include

#include "time.h"

using

namespace

std;

// find the maximum in an array.

int findmax(const

int* parr, int nlen) //最好加上const

}return nmax;

}else

return0;}

// 找出最大和次大的數

void findmax2(const

int* parr, int nlen, int* pmax1, int* pmax2) //最好加上const

else

if (*pmax1 > parr[i]) //與下差別}}

}void findmax22(const

int* parr, int nlen, int* pmax1, int* pmax2) //最好加上const

else

if (*pmax2 < parr[i]) //與上差別

}}int _tmain(int argc, _tchar* argv)

cout

<< endl;

int result = findmax(arr, 10); // nlen = sizeof(arr)/sizeof(int)

cout

<< "the max num in array is :"

<< result << endl;

int max1 = 0;

int max2 = 0;

findmax2(arr, sizeof(arr)/sizeof(int), &max1, &max2);

cout

<< "the max two is :"

<< max1 << '\t'

<< max2 << endl;

//陣列的最大值存在多個

int arr2[10] = ;

for(int i=0; i<10; i++)

findmax2(arr2, sizeof(arr)/sizeof(int), &max1, &max2);

cout

<< "the max two is :"

<< max1 << '\t'

<< max2 << endl;

//函式對於存在大於乙個的最大數情況,該函式不滿足

findmax22(arr2, sizeof(arr)/sizeof(int), &max1, &max2);

cout

<< "the max two is :"

<< max1 << '\t'

<< max2 << endl;

system("pause");

return

0;}

如何拿到陣列的最大值和第二大值

public static void main string args 拿最大值 int max 0 for int i 0 i age.length i 從最大值遞減 int ca 0 while true max 比較乙個最大值出來是很方便的,但是如果還要再拿第二大的呢,第三大的等等,當然我們可...

查詢最大值,最小值,以及第二大值

define nr 10 陣列元素個數 從主函式開始 int main int argc,char argv 檢查是否獲取到nr個資料 if i nr else 查詢最大值和最小值 int max,min max ar 0 假定第乙個數為最大值 min ar 0 同時假定也第乙個數為最大值 從第二個...

找出陣列中第二大的值

題目描述 對於乙個具有 n 個元素的陣列,用乙個天平,通過比較 2個元素的重量,求出第二重的乙個。如下 import numpy as np def secondmax a max a 0 假設第乙個元素為最大值 secondmax 1 for i in a 遍歷每乙個元素 if max i 如果當...