竞赛
考级
输出的和 = 全部输入的数组之和 - 最大的数字 * 最大的数字出现的次数,一次循环就可以解出问题,不需要多次循环
#include<bits/stdc++.h> using namespace std; int a[110]; int main(){ int n; cin>>n; int max=0; for(int i=1;i<=n;i++){ cin>>a[i]; if(a[i]>=max){ max=a[i]; } } int sum=0; for(int i=1;i<=n;i++){ if(a[i]==max){ sum+=0; }else{ sum+=a[i]; } } cout<<sum; return 0; }
虽然数组大小不大,但用vector还是没有问题的。 祝大家刷题快乐!大家一起拿罐头!
只是为了玩玩而已
#include<iostream> using namespace std; int main(){ int n, m=0, m_t=0, s=0, a; cin>>n; for(int i=0;i<n;i++){ cin>>a; if(a>m){ m = a; m_t = 1; } else if(a==m){ m_t++; } s += a; } s -= m*m_t; cout << s; }
#include <bits/stdc++.h> using namespace std; int main(){ int n; cin >> n; int a[110] = {}; for(int i = 1;i <= n;i++){ cin >> a[i]; } int maxn = -100000000; int sum = 0; int p = 0; for(int i = 1;i <= n;i++){ maxn = max(maxn , a[i]); sum += a[i]; } for(int i = 1;i <= n;i++){ if(maxn == a[i]){ p++; } } cout << sum - p * maxn; return 0; }
提交答案之后,这里将显示提交结果~