解题思路:总的思路就是创建两个数组,一个储存输入数据,另一个储存每一个数据的重数(对每一个数据,即使值相同也要为数组的这个元素赋值,这样使得两个数组一一对应)

至于重数计算用一个循环就能解决了

之后用一个求最大值的循环结构在重数数组里求最大值(同时标记下标),最后再用一个条件语句使得在众数有多个时输出最小的

注意事项:当然用几个函数会使代码更简洁,但我懒得用了...

参考代码:

#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分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论