找陣列中的第二大數是乙個查詢過程,一般返回的應該是第二大數在陣列中的位置,但若有其他用途,也可以返回該值
是否找到的標誌和它的真值。估有兩種做法,但其基本思想都是用乙個新數與當前的最大數進行比較,若新數大於最大數,
則新書則成為最大數,最大數退居第二大數;若新數大於當前的第二大數並且新書小於最大數,則新數成為第二大數。
方法一:
返回值為次大數在陣列中的位置。
#include
#include
int find_secmax(int data, int count);
int find_secmax(int data, int count)
else if(data[i] > data[secmax]
&& data[i] < data[max])
}return secmax;
}void main()
second = find_secmax(data, 5);
printf("%d", second);
}方法二:
返回是否找到標誌和第二大數真值。
#include
#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)
return find_sucess;
}/*主函式*/
void main()
result = getsecondmaxnumber(array, &secondmax);
if(result = find_sucess)
}
尋找陣列中的第二大數
方法一 include stdio.h include stdlib.h 初始化最大值為a 0 次大值為a 1 遍歷一次,每次比較並更新最大值和次大值,最後就可以得到次大值。int findsecondmaxvalue int a,int size else if a i s max 更新次大值 s...
尋找陣列中的第二大數
方法一 include stdio.h include stdlib.h 初始化最大值為a 0 次大值為a 1 遍歷一次,每次比較並更新最大值和次大值,最後就可以得到次大值。int findsecondmaxvalue int a,int size else if a i s max 更新次大值 s...
尋找陣列中的第二大數
方法一 初始化最大值為a 0 次大值為a 1 遍歷一次,每次比較並更新最大值和次大值,最後就可以得到次大值。如下 include include int findsecond int a,int size else if a i s max 更新次大值 s max a i return s max ...