1、注:第二大数小于最大数
2、程序
#include <stdio.h>
int getmax2(int *,int);
int main()
{
int a[99] = {0};
int count = 0;
printf ("Please input numbers:");
do{
scanf ("%d",&a[count]);
count++;
}while( getchar() != '\n');//换行前,从键盘获取数据
printf ("Max2 = %d\n",getmax2(a,count));
return 0;
}
int getmax2(int *array,int len)
{
int i;
int max1 = array[0];
int max2 = 0;
if (NULL == array || len <= 0 || array[0] == array[1])//第二大值必须小于最大值
{
return -1;
}
for (i = 1; i < len; i++)
{
if (len == 2)//如果只输入两个数时,需另行判断
{
if (array[0] < array[1])
{
max2 = array[0];
}
else
{
max2 = array[1];
}
break;
}
if (array[i] > max1)//array[i]>最大值为max1时
{
max2 = max1;//在最大值存入max1前,将原最大值存入max2
max1 = array[i];
}
else
{
if (array[i] > max2 && array[i] < max1)//若第二大值等于max1,则舍弃
{
max2 = array[i];
}
}
}
return max2;
}
3、结果
Please input numbers:1 2 33 44 2 4 44 55 77 77 55
Max2 = 55