C++基础编程 找出出现次数最多的那个数

来源:百度知道 编辑:UC知道 时间:2024/06/23 12:54:21
要求是用三个一维数组a,b,c。a存放原来数据,对a中元素排序后,循环对a中各元素两两比较。若比较结果不相同,将其存入c数组,否则b数组与c数组相对应元素加1.最后,输出c与b数组元素,即为统计结果

#include <iostream>
using namespace std;

int main()
{
int N;
cout <<"请输入N:\n";
cin>>N;
int*a=new int[N];//统计20个数种出现次数最多的数
int*b=new int[N];
int *c=new int[N];
memset(b,0,N);
memset(c,0,N);
cout <<"输入"<<N<<"个整数\n";
for(int i=0;i<N;i++){
cin>>a[i];
}
for(int i=0;i<N-1;i++){//对a中的元素进行排序
for(int j=0;j<N-1-i;j++){
if(a[j]>a[j+1])swap(a[j],a[j+1]);
}
}
int h=1,j=0;
b[0]=a[0];
c[0]++;
while(h<N){
if(a[h]!=a[h-1]){
j++;
b[j]=a[h];//将a中不同的数存储到b中
c[j]++;//用c中对应位置的数记录b中每个数的个数
}
else {
c[j]++;
}
h++;
}
int value=0;
int num=0;
for(int i=0;i<N;i++){//查找出现个数最多的那个数
if(value<c[i]){
value=c[i];
num=i;
}
}
cout <<"出现次数最多的数是:"&l