注册 登录
编程论坛 C++教室

如何用c++语言统计数据 求。。。我是菜鸟

linkui0801 发布于 2012-12-31 16:29, 957 次点击
Time Limit: 1sec    Memory Limit:256MB

Description

 
已知100个整数在区间[0,9]内,统计出现次数最多的数字。例如数字3和数字7均出现最多次数,则同时显示3和9这两个数字;多个数字的情况亦然。
 
Input
 

 输入100个整数, 范围在[0 9],每两个整数用空格分开。
 
Output
 

 一行输出次数最多的数字,每个数字后面有一个空格,一行末尾有一个换行符。
11 回复
#2
yuccn2012-12-31 16:42
元方你怎么看?
#3
huang19381202012-12-31 16:46
回大人 俺不看的有点看不太懂
#4
不玩虚的2013-01-01 22:49
#include <iostream>
using namespace std;

int main()
{    int *a,n,i;
    int b1=0,b2=0,b3=0,b4=0,b5=0,b6=0,b7=0,b8=0,b9=0,b10=0;
    cout<<"输入整数个数n:"<<endl;
    cin>>n;
    a=new int [n];
cout<<"输入整数:"<<endl;
    for(i=0;i<n;i++)
        cin>>a[i];
    for(i=0;i<n;i++)
    {if(a[i]==0)
    {    b1++;}
    else if(a[i]==1)
    {b2++;}
    else if(a[i]==2)
    {b3++;}
    else if(a[i]==3)
    {b4++;}
    else if(a[i]==4)
    {b5++;}
    else if(a[i]==5)
    {b6++;}
    else if(a[i]==6)
    {b7++;}
    else if(a[i]==7)
     {b8++;}
    else if(a[i]==8)
    {b9++;}
    else if(a[i]==9)
    {b10++;}

    }
   
int    b[10]={b1,b2,b3,b4,b5,b6,b7,b8,b9,b10};

    int cur=0;
    for(i=0;i<10;i++)
    {if(b[i]>cur)
            cur=b[i];
    }
    for(i=0;i<10;i++)
    {if(b[i]==cur)
        {
            cout<<"数字"<<i<<"出现的次数的次数:"<<b[i]<<endl;            
            
        }
   
    }
    cout<<endl;
    return 0;
}//楼主参考,坑爹啊,要弄这么多变量,统计可以用switch()语句代替,有会的话教我,我忘了那个怎么用了。
#5
周佳峰2013-01-01 22:57
回复 4楼 不玩虚的
cin>>choose;
switch(choose)
{
  case 0:相关语句;
  case 1:......
  .
  .
  .
  .
default:语句;
}
好像是这样。。。
#6
linkui08012013-01-02 10:20
谢谢
#7
tollerson2013-01-02 17:12
弄一个计数数组,然后找最大元吧。10个还不算多
#8
linkui08012013-01-04 13:51
回复 4楼 不玩虚的
如果有两个数同时出现了最多次呢?
#9
rjsp2013-01-04 16:12
先定义个 int cns[10] = { 0 };
读入100个数{ ++cns[读入的数]; }
在cns中寻找最大的数,记为m
输出cns中值为m的元素下标
#10
不玩虚的2013-01-07 09:48
以下是引用linkui0801在2013-1-4 13:51:59的发言:

如果有两个数同时出现了最多次呢?
难道我写的那个不能实现,2个数同时出现次数一样的情况,不可能吧!只要是相同次数且是最大的他都能实现的啊!
#11
h10234176142013-01-07 10:56
#12
dameme2013-01-07 17:46
程序代码:
int main()
{
    int a[10] = {0};
    int n;
    while (cin >> n)
    {
        ++a[n % 10];
    }
    int value = 0;
    int count = 0;
    int b[10];
    for (int i = 0; i < 10; ++i)
    {
        if (value < a[i])
        {
            value = a[i];
            count = 1;
            b[count - 1] = i;
        }
        else if (value == a[i])
        {
            ++count;
            b[count - 1] = i;
        }
    }

    for (int i = 0; i < count; ++i)
    {
        cout << b[i] << " ";
    }
    cout << endl;
    return 0;
}
1