求一个无序数组中的次大数,只遍历一次数组
发布时间:2020-12-14 03:38:31 所属栏目:大数据 来源:网络整理
导读:刚开始我感觉这到问题很简单 ?开始我是这样写的 #includeiostreamusing namespace std ;int secondmax(int data[],int n){int i,max = -32768,max2 = -32768 ;for(i = 0 ; i n ; i++){if(max a[i]){max2 = max ;max = data[i];}}return max2 ;}int main(){in
刚开始我感觉这到问题很简单 ?开始我是这样写的
#include<iostream> using namespace std ; int secondmax(int data[],int n) { int i,max = -32768,max2 = -32768 ; for(i = 0 ; i < n ; i++) { if(max < a[i]) { max2 = max ; max = data[i]; } } return max2 ; } int main() { int a[10]; int i ; for(i = 0 ; i < 10 ; i++) { cin>>a[i] ; } cout<<secondmax(a,10)<<endl; }? 之后发现问题了 次代码只支持 有序数组 然后进行改进 int secondmax(int data[],max2 = -32768 ; for(i = 0 ; i < n ; i++) { if(max < data[i]) { max2 = max ; max = data[i]; } else if(data[i]>max2 && data[i]<max) ///这里 && data[i]<max 是为了消除相等的情况 { max2 = data[i] ; } } return max2 ; }可能还会出现 一组数组中数全部相同情况 总之有很多种情况 我就不考虑了 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |