找出陣列中的第二大數字
阿新 • • 發佈:2019-01-28
寫一個函式,找出陣列中第二大的數字
使用的是比較的方法:
程式碼如下:
//找出陣列中第二大的數 #include<iostream> #include<time.h> #define N 15 #define d 3 using namespace std; int fun(int num[]) { int sec_max=-32767; int max=num[0]; int i; for (i=1;i<N;i++) { if (num[i]>max) { sec_max=max; max=num[i]; } else { if (num[i]>sec_max) { sec_max=num[i]; } } } return sec_max; } int main() { int *num; int i; int temp=1; num=(int *)malloc(sizeof(int)); srand((unsigned)time(NULL)); for (i=0;i<d;i++) { temp*=10; } for (i=0;i<N;i++) { num=(int *)realloc(num,sizeof(int)*(i+1)); num[i]=rand()%temp; } for (i=0;i<N;i++) { cout<<num[i]<<" "; } cout<<endl; cout<<"第二大數為: "<<fun(num)<<endl; free(num); return 0; }