leon


私信TA

用户名:dark00

访问量:3551

签 名:

nop

等  级
排  名 8935
经  验 1193
参赛次数 1
文章发表 6
年  龄 18
在职情况 学生
学  校 某大学
专  业

  自我简介:

不要一直都是萌新

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

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

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

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

参考代码:

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

3 人评分

  评论区

  • «
  • »