B2094 不与最大数相同的数字之和

思路1

  1. 升序排序,最后一项即为最大值,记录
  2. 遍历数组,累加所有与记录的最大值不同的元素

    代码1

    #include <iostream>
    #include <algorithm>
    using namespace std;
    int n, a[101], s, x;
    int main()
    {
    cin >> n;
    for(int i = 0;i < n;++i)
        cin >> a[i];
    sort(a, a + n);x = a[n - 1]; //排序,记录最大值,注意下标从 0 开始
    for(int i = 0;i < n;++i)
        if(a[i] != x) s += a[i]; //a[i]不为最大值,累加
    cout << s;
    return 0;
    }

思路2

  1. 遍历数组,查找最大值
  2. 再次遍历数组,累加所有不为最大值的元素

    代码2

    #include <iostream>
    #include <algorithm>
    using namespace std;
    int n, a[101], s, x;
    int main()
    {
    cin >> n;
    for(int i = 0;i < n;++i)
        cin >> a[i];
    for(int i = 0;i < n;++i)
        x = max(a[i], x); //查找最大值
    for(int i = 0;i < n;++i)
        if(a[i] != x) s += a[i]; //a[i]不为最大值,累加
    cout << s;
    return 0;
    }
posted @   Jijidawang  阅读(14)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示