美文网首页
[09]第二大的数-搜狐畅游2018秋

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

作者: jdzhangxin | 来源:发表于2018-10-21 18:16 被阅读71次

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

    牛客题目

    相关文章

      网友评论

          本文标题:[09]第二大的数-搜狐畅游2018秋

          本文链接:https://www.haomeiwen.com/subject/nakdoftx.html