尋找陣列中的第二大數

2021-08-26 01:28:39 字數 1051 閱讀 5069

方法一:

#include "stdio.h"

#include "stdlib.h"

//初始化最大值為a[0],次大值為a[1],遍歷一次,每次比較並更新最大值和次大值,最後就可以得到次大值。

int findsecondmaxvalue(int *a,int size)

else if(a[i]s_max) //更新次大值

s_max=a[i];

}return s_max;

}int main(void)

; second=findsecondmaxvalue(a,sizeof(a)/sizeof(a[0]));

printf("這個陣列中的次大值為:%d\n",second);

system("pause");

return 0;

}

方法二:

/* 

寫乙個函式找出乙個整數陣列中,第二大的數(microsoft)

要求效率盡可能高

*/ #include "stdio.h"

#include "stdlib.h"

int find(int *a,int n) //從陣列的第二個元素開始查詢

return second;

}int findsecondmaxvalue(int *a,int size)

else if(a[i]second)

second=a[i];

} //最大值和次大值相等(陣列的第乙個元素為最大值的時候)

if(first==second)

return second;

}int main(void)

; int second=findsecondmaxvalue(a,sizeof(a)/sizeof(a[0]));

printf("這個陣列中的次大值為:%d\n",second);

system("pause");

return 0;

}

尋找陣列中的第二大數

方法一 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 ...