#define arrsize 10
#define minnumber 0xffffffff
#define find_sucess 1
#define find_fail 0
int getsecondmaxnumber(int buffer,int *secondmax)
else if (buffer[i] > *secondmax && buffer[i] < max)
*secondmax = buffer[i];
}if(*secondmax == minnumber) //the numbers are all the same.
return find_fail;
return find_sucess;
}
查詢第二大數實際上是伴隨在查詢最大數的過程中的。 1、
如果當前元素大於最大數 max,則讓第二大數等於原來的最大數 max,再把當前元素的值賦給 max。
2、
如果當前的元素大於第二大數secondmax的值而小於最大數max的值,則要把當前元素的值賦給 secondmax。――判斷條件不能僅僅只是大於第二大的數secondmax,否則我們便無法處理」 99,99,88,86,68,66 」這種情況。
ps:這個函式在呼叫時需要判斷函式的返回值是否是find_sucess才能使用。
找出陣列中第二大的數
給你乙個陣列,求出其中第二大的數 比如陣列a 1,2,3,4,5,6,7,8,9 其中第二大的數為8,返回8即可 分析 一般情況下都是求最大值,呵呵,這道題很有趣。想想也不難,可以在掃瞄最大值的同時,求出第二大的值,就是比當前最大值大的數賦給最大值,然後用第二大的值與先前的最大值比較,如果小,則用先...
找出陣列中第二大的數
include include includeusing namespace std 初始化最大值為a 0 次大值為a 1 遍歷一次,每次比較並更新最大值和次大值,最後就可以得到次大值。這種方法時間複雜度為o n bool invalidinput false int findsecondmax i...
找出陣列中第二大的數
題目 寫乙個函式找出乙個整數陣列中,第二大的數。cpp view plain copy print?include 初始化最大值為a 0 次大值為a 1 遍歷一次,每次比較並更新最大值和次大值,最後就可以得到次大值。intfindsecondmaxvalue int a,intsize else i...