您的位置:首页 > 其它

写一个函数找出一个整数数组中,第二大的数

2015-05-16 18:44 176 查看
//========================================================================

//程序的功能:写一个函数找出一个整数数组中,第二大的数

//程序的设计思路:希望在一次遍历过程中就能够选取出来,这样效率是最高的

// 1:设置两个临时变量 max second ,然后就是不断地搜索了

//能不能再只消耗一个变量的情况下进行查找啦?

// 这个问题我想了好久,还是没想到,估计自己对算法不熟悉造成的。。。。。。。。。。。。

//能不能不通过变量的方式来寻找答案啦?

//不行,如果不消耗变量,那么必须改变数组里面的数据,而这个程序中传入的数据是不能修改的,所以不行

//程序的设计语言:c++

//

//============================================================================

#include<iostream>

using namespace std ;

int find_second(const int* a , int len )

{

//对输入进行检查

if( a == NULL )

{

cout<<"传入的指针 error!"<<endl;

return -1 ;

}

if( len < 2 )

{

cout<<"传入的数组的大小 小于 2,不存在第二大的数据!"<<endl;

return -1 ;

}

int max = a[0] ;

int second = a[1] ;

int i = 0 ;

for( i = 2 ; i < len ; i++)//一次循环查找最大、第二大值

{

if( a[i] > max )

{

second = max ;

max = a[i] ;

}

if( a[i] > second && a[i] < max )

{

second = a[i] ;

}

}

return second ;

}

int main()

{

int a[10] = {1,21,2,3,456,789,9,86,56,32} ;

int res = find_second(a,sizeof(a)/sizeof(a[0]) );

cout<<res<<endl;

system("pause");

return 0 ;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐