题目描述
输出一个整数数列中不与最大数相同的数字之和。
输入格式
输入分为两行:
第一行为 N(N 为接下来数的个数,N≤100);
第二行为 N 个整数,数与数之间以一个空格分开,每个整数的范围是 −1000,000 到 1000,000。
输出格式
输出为 N 个数中除去最大数其余数字之和。
输入输出样例
输入 #
3 1 2 3
输出 #1
3
看代码
#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;
}
我们只需排个序,从头开始遍历,判断是否与最后一个数相等(显然,最后一个数就是最大数),如果是就跳出循环(因为后面也肯定是最大数),否则计数器加上它。
这里说一下排序 sort(a+1,a+n+1),这个数组会自动从小到大排序(特别具体的我也不知道)