尋找陣列中的第二大數

2021-06-16 05:54:24 字數 1289 閱讀 7660

找陣列中的第二大數是乙個查詢過程,一般返回的應該是第二大數在陣列中的位置,但若有其他用途,也可以返回該值

是否找到的標誌和它的真值。估有兩種做法,但其基本思想都是用乙個新數與當前的最大數進行比較,若新數大於最大數,

則新書則成為最大數,最大數退居第二大數;若新數大於當前的第二大數並且新書小於最大數,則新數成為第二大數。

方法一:

返回值為次大數在陣列中的位置。

#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 ...