问题描述
输出最受欢迎的月饼销量及种类,如果有并列就递增输出。
题目分析
将所有月饼的销量存入一个nxm的矩阵中,计算矩阵每一列的和,就可以得到这一种类月饼的总销量。将其存入一个数组,遍历数组找出最大值。创立一个index数组记录销量最大值月饼的种类。如果当前的sum>max,我们就将index数组清空,将新的种类push进入index;如果sum==max,我们也将此种类月饼push进入index,但我们不需要将index数组清空,只有当遇到更大的值才会清空。
遍历index数组,依次输出最大销量的种类即可。
代码
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int n,m;//月饼种类数目和城市数目
cin>>n>>m;
int sale[m][n];
for(int i = 0;i < m;i++)
{
for(int j = 0;j < n;j++)
{
cin>>sale[i][j];
}
}
int max = 0;//销量最多的数目以及种类
vector<int>sum_;
vector<int>index;
for(int j = 0;j < n;j++)
{
int sum = 0;
for(int i = 0;i < m;i++)
{
sum += sale[i][j];
}
if(sum > max)
{
max = sum;
index.clear();
index.push_back(j);
}
else if(sum==max)
{
index.push_back(j);
}
}
cout<<max<<endl;
cout<<index[0]+1;
for(int i = 1;i < index.size();i++)
cout<<" "<<index[i]+1;
return 0;
}
答题用时9min
Q92——finish√