注意:陣列的最大值同時存在多個的情況!(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 如果當...