如何寻找数组中的第二大数
数组 如何 寻找 第二 大数
2023-06-13 09:15:00 时间
#include"stdio.h"
#include"stdlib.h"
//初始化最大值为a[0],次大值为a[1],遍历一次,每次比较并更新最大值和次大值,最后就可以得到次大值。
intfindsecondmaxvalue(int*a,intsize)
{
inti,max,s_max;
max=a[0]; //最大值
s_max=a[1]; //次大值
for(i=0;i<size;i++)
{
if(a[i]>max)
{
s_max=max; //更新最大值和次大值
max=a[i];
}
elseif(a[i]<max&&a[i]>s_max) //更新次大值
s_max=a[i];
}
returns_max;
}
intmain(void)
{
intsecond,a[]={111,23,3,5,652,2,3};
second=findsecondmaxvalue(a,sizeof(a)/sizeof(a[0]));
printf("这个数组中的次大值为:%d\n",second);
system("pause");
return0;
}
/*
写一个函数找出一个整数数组中,第二大的数(microsoft)
要求效率尽可能高
*/
#include"stdio.h"
#include"stdlib.h"
intfind(int*a,intn) //从数组的第二个元素开始查找
{
inti,second=a[1];
for(i=1;i<n;i++)
{
if(a[i]>second)
second=a[i];
}
returnsecond;
}
intfindsecondmaxvalue(int*a,intsize)
{
inti,first,second;
first=second=a[0];
for(i=1;i<size;i++)
{
if(a[i]>first)
{
second=first;
first=a[i];
}
elseif(a[i]<first&&a[i]>second)
second=a[i];
}
//最大值和次大值相等(数组的第一个元素为最大值的时候)
if(first==second)
{
second=find(a,size);//从数组的第二个元素开始找一个最大值的即为次大值
}
returnsecond;
}
intmain(void)
{
inta[]={12012,3,45,5,66,232,65,7,8,898,56,878,170,13,5};
intsecond=findsecondmaxvalue(a,sizeof(a)/sizeof(a[0]));
printf("这个数组中的次大值为:%d\n",second);
system("pause");
return0;
}
相关文章
- java对象数组 创建对象数组,初始化对象数组「建议收藏」
- Java中如何把两个数组合并为一个
- 【说站】Java数组如何实现动态初始化
- 【说站】java如何创建对象数组
- JS查找数组中是否包含某个元素或对象「建议收藏」
- js删除数组中的一个元素_js数组包含某个元素
- 如何在不使用 sizeof 的情况下在 Cu002FC++ 中找到数组的大小?
- 如何将文件流转换成byte[]数组
- 数组方法底层实现:push pop map遍历 个人理解实现方法
- 开心档之Swift数组
- PHP 如何向关联数组指定的 Key 之前插入元素
- NSData 与 NSString,Byte数组,UIImage 的相互转换详解手机开发
- 如何对JAVASCRIPT中数组进行操作详解编程语言
- JS reduce()和reduceRight()方法:对数组元素进行迭代(累加)
- Linux中如何获取数组长度(linux数组长度)
- 如何在MySQL中创建数组(mysql中创建数组)
- MySQL如何创建和操作一维数组(mysql一维数组)
- 一个ASP中的数组
- PHP数组的交集array_intersect(),array_intersect_assoc(),array_inter_key()函数的小问题
- SortingArrayValuesinPHP(数组排序)
- 关于JavaScript中的关联数组分析
- 如何判断php数组的维度
- java求数组第二大元素示例
- Java中如何比较两个数组中元素是否相同