33,311
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
int a[1000000];
int main()
{
using namespace std;
int n,d=11;
int b[11]={-5,-4,-3,-2,-1,0,1,2,3,4,5};
int c[12]={0,0,0,0,0,0,0,0,0,0,0,0};
cin>>n;
for (int i = 0; i < n; ++i)
{
cin>>a[i];
for (int j = 0; j < 11; ++j)
{
if (a[i]==b[j])
{
c[j]++;
}
}
}
for (int k = 0; k < 11; ++k)
{
if (c[k]>c[k+1])
{
c[k+1]=c[k];
if (d==11)
{
d=k;
}
}else if (c[k]<c[k+1])
{
d=k+1;
}else if (c[k]==c[k+1])
{
if (b[d]>b[k+1])
{
d=k+1;
}
}
}
cout<<b[d];
return 0;
}
#include <iostream>
#define MAX_SIZE 11
int main()
{
using namespace std;
int *arr, n, cnt[MAX_SIZE] = { 0 };
int i, maxv, maxi;
cout<<"Please input the number: ";
cin>>n;
arr = new int[n];
i = 0;
while (i < n) {
cin>>arr[i];
if (arr[i] < -5 || arr[i] > 5)
continue;
if (arr[i] <= 0)
cnt[arr[i] + 5]++;
else
cnt[arr[i] + 5]++;
i++;
}
maxv = cnt[0];
maxi = 0;
for (i = 0; i < MAX_SIZE; i++) {
if (maxv < cnt[i])
maxi = i;
cout<<"cnt["<<i<<"] = " << cnt[i]<<endl;
}
cout<<maxi-5<<endl;
/*
int n,d=11;
int b[11] = {-5,-4,-3,-2,-1,0,1,2,3,4,5};
int c[12] = {0};
int *a = NULL;
cin>>n;
a = new int[n];
for (int i = 0; i < n; ++i)
{
cin>>a[i];
for (int j = 0; j < 11; ++j)
{
if (a[i]==b[j])
{
c[j]++;
}
}
}
for (int k = 0; k < 11; ++k)
{
if (c[k]>c[k+1])
{
c[k+1]=c[k];
if (d==11)
{
d=k;
}
}else if (c[k]<c[k+1])
{
d=k+1;
}else if (c[k]==c[k+1])
{
if (b[d]>b[k+1])
{
d=k+1;
}
}
}
cout<<b[d];
*/
return 0;
}
参考一下吧;
不建议一次性定义这么大的数组,既然可以动态申请,那么没必要申请静态的数组;数组太大只会浪费空间,即使动态申请也可以支持100000个数
根据数组下表和-5~5之间的一个对应关系,这样做会更好一些;
#include <stdio.h>
#include <iostream>
using namespace std;
int main(){
unsigned int n = 0;
unsigned int index = 0;
int maxtimes = 0;
int resultnum = -5;
int tempnum = -5;
int record[11] = {0};
cout<<"please intput the num"<<endl;
cin>>n;
do{
cin>>tempnum;
record[tempnum + 5]++;
if(record[tempnum + 5] > maxtimes){
resultnum = tempnum;
maxtimes = record[tempnum + 5];
}else if(record[tempnum + 5] == maxtimes){
if(tempnum < resultnum){
resultnum = tempnum;
}
}
index++;
}while(index < n) ;
cout<<"the result num is "<<resultnum<<endl;
}
试了一下应该可以吧。