解题思路:总的思路就是创建两个数组,一个储存输入数据,另一个储存每一个数据的重数(对每一个数据,即使值相同也要为数组的这个元素赋值,这样使得两个数组一一对应)
至于重数计算用一个循环就能解决了
之后用一个求最大值的循环结构在重数数组里求最大值(同时标记下标),最后再用一个条件语句使得在众数有多个时输出最小的
注意事项:当然用几个函数会使代码更简洁,但我懒得用了...
参考代码:
#include<iostream>
int main(){
using namespace std;
int n,i,j,k=0,h,sum=0;
int sigh,max;
cin>>n;
int * d = new int [n];
int * f = new int [n];
for(i=0;i<n;i++){
cin.get();
cin>>d[i];
}
for(i=0;i<n;i++){
for(j=0;j<n;j++){
if(d[i]==d[j]){
sum++;
}
}
f[k]=sum;
k++;
sum=0;
}
max=f[0];
for(h=1;h<k;h++){
if(f[h]>max){
sigh=h;
max=f[h];
}
else if(f[h]==max){
sigh=(d[sigh]<d[h]) ? sigh : h;
}
}
cout<<d[sigh]<<endl;
cout<<max<<endl;
k=0;
delete d;
delete f;
}
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复