竞赛
考级
T3 本题只需要先对整个数组求和,然后再减去最大的元素的值的一半即。
#include<bits/stdc++.h> using namespace std; int main(){ long long n,mx=0,jg = 0; int a[1010]; cin>>n; }
#include<iostream> using namespace std; int main(){ int n,all=0,maxn=0; cin>>n; int a[n+1]; for(int i=1;i<=n;i++){ int b; cin>>b; a[i]=b; if(b>maxn){ maxn=b; } } for(int i=1;i<=n;i++){ all+=a[i]; } all-=maxn/2; cout<<all; return 0; }
}
#include <iostream> using namespace std; int main(){ int a[10005]; int n; int cnt=0; int sum=0; int max=-1; cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; } for(int i=1;i<=n;i++){ if(a[i]>max){ max=a[i]; } } for(int i=1;i<=n;i++){ if(a[i]==max){ }
解题思路 与正常求和不同的是,这次的最大值要减半 我们先用cnt把所有的数加起来 再用big找到最大值,这里要设置成0(只要是 <= 0的就行,看题目) 在循环里面判断,如果这个数大于big,那么就把它赋值给big 循环结束后,我们就找到了最大值 最大值要减半,我们就/=2 因为我们是先加后减,所以cnt还要减去big 代码
提交答案之后,这里将显示提交结果~