不与最大数相同的数字之和
题目描述
输出一个整数数列中不与最大数相同的数字之和。
输入格式
输入分为两行:
第一行为 N ( N N(N N(N 为接下来数的个数, N ≤ 100 ) N \le 100) N≤100);
第二行为 N N N 个整数,数与数之间以一个空格分开,每个整数的范围是 − 1000 , 000 -1000,000 −1000,000 到 1000 , 000 1000,000 1000,000。
输出格式
输出为 N N N 个数中除去最大数其余数字之和。
样例 #1
样例输入 #1
3
1 2 3
样例输出 #1
3
这里我提供一种不同的思路。
我们只需排个序,从头开始遍历,判断是否与最后一个数相等(显然,最后一个数就是最大数),如果是就跳出循环(因为后面也肯定是最大数),否则计数器加上它。
AC代码:
#include<bits/stdc++.h>
using namespace std;
int a[101],n,cnt;
int main() {
cin>>n;
for(int i=1; i<=n; i++)
cin>>a[i];//输入
sort(a+1,a+n+1);//排序
for(int i=1; a[i]!=a[n]; i++) //在循环条件里判断(当然也能在下面判断啦)
cnt+=a[i];//累加
cout<<cnt;
return 0;
}
最后点个赞呗。