当前位置:  编程技术>c/c++/嵌入式

如何寻找数组中的第二大数

    来源: 互联网  发布时间:2014-10-15

    本文导语:  方法一: 代码如下:#include "stdio.h"#include "stdlib.h"//初始化最大值为a[0],次大值为a[1],遍历一次,每次比较并更新最大值和次大值,最后就可以得到次大值。int findsecondmaxvalue(int *a,int size){    int i,max,s_max;    max=a[0];  //最大值...

方法一:
代码如下:

#include "stdio.h"
#include "stdlib.h"
//初始化最大值为a[0],次大值为a[1],遍历一次,每次比较并更新最大值和次大值,最后就可以得到次大值。
int findsecondmaxvalue(int *a,int size)
{
    int i,max,s_max;
    max=a[0];  //最大值
 s_max=a[1];  //次大值
    for(i=0;imax)
        {
   s_max=max;  //更新最大值和次大值
   max=a[i];
        }
  else if(a[i]s_max)   //更新次大值
   s_max=a[i];
    }
 return s_max;
}
int main(void)
{
    int second,a[]={111,23,3,5,652,2,3};
    second=findsecondmaxvalue(a,sizeof(a)/sizeof(a[0]));
    printf("这个数组中的次大值为:%dn",second);
 system("pause");
 return 0;
}

方法二:
代码如下:

/*
写一个函数找出一个整数数组中,第二大的数(microsoft)
要求效率尽可能高
*/
#include "stdio.h" 
#include "stdlib.h" 
int find(int *a,int n)   //从数组的第二个元素开始查找

 int i,second=a[1];
 for(i=1;isecond)
   second=a[i];
 }
 return second;
}
int findsecondmaxvalue(int *a,int size) 

 int i,first,second;
 first=second=a[0];
 for(i=1;ifirst)
  {
   second=first;
   first=a[i];
  }
  else if(a[i]second)
   second=a[i];
 }
 //最大值和次大值相等(数组的第一个元素为最大值的时候) 
 if(first==second)
 {
  second=find(a,size); //从数组的第二个元素开始找一个最大值的即为次大值
 }
 return second;
}
int main(void)
{
 int a[] = {12012, 3, 45, 5, 66, 232, 65, 7, 8, 898, 56, 878, 170, 13, 5};
 int second=findsecondmaxvalue(a,sizeof(a)/sizeof(a[0]));
 printf("这个数组中的次大值为:%dn",second);
 system("pause");
 return 0;
}


    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • ◆ 寻找2月9号一起回家的朋友:T1次,北京--长沙 ◆
  • 寻找基于JAVA/J2EE的CRM解决方案
  • 寻找光盘!!!
  • 寻找linux下载工具,下载速度快,支持断点续传
  • 寻找陕西西安中润科技的技术前辈
  • 寻找这些库的测试代码
  • 高分寻找JSP聊天室程序,哪位大哥有或者帮我找到,200分马上奉送!!
  • 寻找《Java与XML数据库整合应用》一书光盘!!!(up有分)
  • 寻找一种较为方便的java代码文本编辑器(比如带有语法及关键字变色功能)?
  • 寻找weblogic
  • 寻找Grid控件 For Java Applet
  • 寻找serlet包
  • 在国内寻找visibroker(for java) 4.x版本下载站点
  • 寻找一个介绍jsp的网站!!!
  • 寻找linux下gcc编程的网上教程,越全越好,望各位高手指点一下小弟!
  • 我想把ELF(EXECUTABLE AND LINKABLE FORMAT)转为其它格式,寻找ELF文档!!!
  • 寻找linux下的yamaha724的声卡驱动程序。
  • 高分寻找 用过IBM S390机的人吗?给出其信箱或QQ也行!
  • 寻找Jbuilder4.0的注册码!!!!!(在线等候)
  • 寻找可 telnet 的linux 主机


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3