[09]第二大的数-搜狐畅游2018秋

2018-10-21  本文已影响71人  jdzhangxin

1.题目描述

输入 n 个整数,查找数组中第二大的数

2.题目解析

求最大数的基础上,加上第二大的数处理。

3.参考答案

#include <bits/stdc++.h>
using namespace std;

int main() {
   int n = 0;
   scanf("%d",&n);
   int nums[n];
   fill_n(nums,n,0); // 初始化数列
   for(int i=0;i<n;++i){
       scanf("%d",&nums[i]);
   }
   int max_num = max(nums[0],nums[1]);
   int max_sec = min(nums[0],nums[1]);
   for(int i=2;i<n;++i){
       if(nums[i] > max_num){
           max_sec = max_num;
           max_num = nums[i];
       }else if(nums[i] > max_sec){
           max_sec = nums[i];
       }
   }
   printf("%d\n",max_sec);
   return 0;
}
#include <bits/stdc++.h> 
using namespace std;
int main() {
  int n = 0;
  scanf("%d",&n);
  int max = -0xffffff;
  int sec_max = -0xffffff;
  while(n--){
    int num = 0;
    scanf("%d", &num);
    if(max < num){ // 如果数字大于最大值
      sec_max = max;
      max = num;
    }else if (sec_max < num){ // 如果数字大于第二大值
      sec_max = num;
    }
  }
  printf("%d\n",sec_max);
  return 0;
}

扩展:求第三大的数?求第n大的数字?

牛客题目

上一篇下一篇

猜你喜欢

热点阅读