腾讯笔试题求助:c++数数的问题,比如一个数组112222555...如何统计不同数字各有多少个数?

数组元素个数不大于200个。(我已经先排序了,下一步数数不知道怎么弄。原题数组是打乱的,直接让求)1.要求:把不同的数字依次放入数组中,且统计出不同数字各有几个数。2.结... 数组元素个数不大于200个。(我已经先排序了,下一步数数不知道怎么弄。原题数组是打乱的,直接让求)1.要求:把不同的数字依次放入数组中,且统计出不同数字各有几个数。2.结果:把1放入a[0][0],2放入a[1][0],5放入a[2][0]中,且a[0][1]=2,a[1][1]=4;a[2][1]=3
也就是说把一堆数组中的不同的数统计出来,把不同的数放在一个二维数组的第一列,且也要把重复次数数出来放在二维数组的第二列。
展开
 我来答
cjj796
2013-10-11 · TA获得超过8709个赞
知道大有可为答主
回答量:1.3万
采纳率:68%
帮助的人:3463万
展开全部

1、这个题目不需要排序,这里假设:char *a="1231231231234";

2、申请一个 int  shu[11] ; ,分别存放0 - 9 数字的个数

3、从头至尾,逐位开始遍历数组,这里以 i 作为数组的下标

4、遍历的过程中,  shu[  a[ i] ] ++; 这样对统计赋值

        结果是:1 = 4  、2 = 4 、 3  =  4 、4 = 1

5、不知道是不是描述清楚了,嘿嘿

#include<stdio.h>

int main()
{
    int a[]={1,2,3,1,2,3,1,1,4,8,8,8};
    int shu[12]={0};
    int x;

    for(x=0;x<12;x++)
        shu[a[x]]++;

    for(x=0;x<10;x++)
        printf("统计输出 %d 出现 %d \n",x,shu[x]);
    return 0;

}
更多追问追答
追问
非常感谢,但还有一些问题需要求教。
1,数组中的元素可以是不连续的,整个数列可以没有2,3等,
2.数组中的元素取值范围可以是0-100;
如果a[]={1,2,3,1,2,3,1,1,4,8,8,8};
希望输出的结果:第一列是不重复的数,第二列是重复的次数。
1 4
2 2
3 2
4 1
8 3
追答

是这样的效果吗,我这里只是没有过滤 0 次出现的

如果取值是 0-100,那么定义变量,做相应的扩大, int shu[102]={0};,其他的不变

#include<stdio.h>
 
int main()
{
    int a[]={1,2,3,1,2,3,1,1,4,8,8,8};
    int shu[102]={0};
    int x;
 
    for(x=0;x<12;x++)
        shu[a[x]]++;
 
    for(x=0;x<100;x++)
        printf("统计输出 %d 出现 %d \n",x,shu[x]);
    return 0;
 
}

 我给你做一个输入数字,自动计算的吧

mylxhccshhp
2013-10-11 · TA获得超过136个赞
知道小有建树答主
回答量:79
采纳率:0%
帮助的人:126万
展开全部

a中元素都初始化为0,数组为array[],array中共有num个数,的话:

int i;
int count = 0;
for(i = 0; i < num; i++)
{
    if(array[i] > count)
        count = array[i];
    a[array[i]-1][1]++;
}
for(i = 0; i < count; i++)
    a[i][0] = i+1;

 无需排序

更多追问追答
追问
统计出各个不同的数,假定数组有2个1,4个2,3个5,把不同的数字放在一列数组中(输出的结果这个数组没有重复的数字,只有1,2 ,5三个数),然后统计出重复的次数。。。你这样求不出结果吧,还是谢谢额、
追答
可以的啊 你把原始变量给我 我给你写出来 你可以去调试看看
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式