问题:1810. 最贵商品和最便宜商品分别有几个
类型:数组找数
题目描述:
小明去超市买商品,买了 N 件,每件商品的价格都是整数(价格不会全都一样),小明想知道这 N 件商品中,最贵商品和最便宜商品分别有几个(最贵和最便宜分别可以有多个)?请你编写程序帮忙小明计算。
输入:
第 1 行有一个整数 n(n≤100)。
第 2 行有 n 个整数,用空格隔开。
输出:
输出 2 个整数,用空格隔开,第 1 个整数代表最贵的商品有几个,第 2 个整数代表最便宜的商品有几个。
样例:
输入:
6
12 3 3 15 34 17
输出:
1 2
完整代码如下:
#include<bits/stdc++.h>
using namespace std;
int main(){
//一、分析问题
//已知:N (n≤100)件商品,每件商品的价格都是整数(价格不会全都一样)
//未知:最贵商品和最便宜商品分别有几个;
//关系:
//二、定义变量(已知、未知、关系)
int n,a[110],mmax=INT_MIN,mmin=INT_MAX,cmax=0,cmin=0;
//三、输入已知
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
if(a[i]>mmax) mmax=a[i];
if(a[i]<mmin) mmin=a[i];
}
//四、根据关系计算
for(int i=0;i<n;i++){
if(a[i]==mmax) ++cmax;
if(a[i]==mmin) ++cmin;
}
//五、输出未知
cout<<cmax<<" "<<cmin;
return 0;
}