解题思路:总的思路就是创建两个数组,一个储存输入数据,另一个储存每一个数据的重数(对每一个数据,即使值相同也要为数组的这个元素赋值,这样使得两个数组一一对应)
至于重数计算用一个循环就能解决了
之后用一个求最大值的循环结构在重数数组里求最大值(同时标记下标),最后再用一个条件语句使得在众数有多个时输出最小的
注意事项:当然用几个函数会使代码更简洁,但我懒得用了...
参考代码:
#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 人评分
字符串输入输出函数 (C++代码)(都当成字符串吧hhhhhhhh)浏览:509 |
母牛的故事 (C语言代码)浏览:478 |
回文串 (C语言代码)浏览:3095 |
C语言程序设计教程(第三版)课后习题5.6 (C语言代码)浏览:909 |
【蟠桃记】 (C语言代码)浏览:697 |
WU-整数平均值 (C++代码)浏览:1307 |
1908题解浏览:680 |
1025题解浏览:796 |
A+B for Input-Output Practice (VI) (C语言代码)浏览:575 |
输入输出格式练习 (C语言代码)浏览:773 |