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

1.题目描述

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

  • 输入描述:
    第一行 n 表示 n 个数,第二行 n 个空格隔开的数
  • 输出描述:
    输出第二大的数
  • 输入例子 1:
    5
    1 2 3 4 5
    
  • 输出例子 1:
    4
    

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大的数字?

牛客题目

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容