1 solutions
-
0
Guest MOD
-
2
看到还没有题解,我来!!!!!!!!!

#include <iostream> #include <algorithm> using namespace std; bool cmp(int a,int b){ return a<b; } int main(){ int n; cin>>n; int a[105]; for(int i=1;i<=n;i++){ cin>>a[i]; } sort(a+1,a+1+n,cmp); int sum=0; for(int i=1;i<n;i++){ int flag=0; for(int j=i+1;j<=n;j++){ if(a[j]==a[i]){ flag=1; } } if(flag==0){ sum+=a[i]; } } cout<<sum; return 0; }此题说了“不与最大数相同的数字之和”,告诉我们两个信息:
①数字之和中不包括最大的数。
②最大的数可能有多个。
理解了题目之后就好做多了。

首先定义数字个数的变量,输入;
其次定义数组,输入数组;
然后进行排序,用啥排序都行,本人比较喜欢sort排序;
接着定义一个记总和的变量,别忘了把这个变量初始化为0;
最重要,也是本题中最难的一步来了—————那就是—————判断是否有重复的最大的数字! 建议用以下代码
for(int i=1;i<n;i++){ int flag=0;//定义标记变量 for(int j=i+1;j<=n;j++){ if(a[j]==a[i]){ flag=1;//如果有同样的最大的数字,就把标记变量的值更换。 } } if(flag==0){ sum+=a[i]; }//最后判断相加。 } }这或许是我打过的最长的题解了,QWQ
如果觉得不错
那就挺好的

如有错误,欢迎指出!!!!
- 1
Information
- ID
- 719
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 6
- Tags
- (None)
- # Submissions
- 95
- Accepted
- 26
- Uploaded By