写一个函数,找出数组中第二大的数字
使用的是比较的方法:
代码如下:
//找出数组中第二大的数
#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;
}