如何计算c中数组中的元素

时间:2013-05-18 03:47:20

标签: c arrays count element

在C中,我如何计算特定元素在数组中出现的次数?然后如何向用户显示该计数?

例如,如果我有一个由{1, 2, 2, 2, 3}组成的数组。如何编写一个代码,告诉我2出现3次,然后将其显示给用户?

1 个答案:

答案 0 :(得分:0)

如果您只想计算所有元素:假设数组只能包含有限范围的整数,则声明另一个长度为第一个数组中最大条目的数组。迭代第一个数组并通过第一个数组递增第二个数组索引中的位置,然后打印出第二个数组。

伪代码:

 int nums[] =  {1,2,2,2,3};

 int counts[10];  // assume entries in nums are in range 0..9

 for(i = 0; i < length of nums; ++i)
 {
     num = nums[i]; 
     if(num < 0 or num >= length of counts)
        handle this somehow
     ++counts[num];
 }
 for(i = 0; i < length of counts; ++i)
 {
    printf("%d occurs %d times\n", i, counts[i]);
 }

如果您只想计算一个特定值:

int count_in_array(int value, int* array, int length)
{
    int count = 0;
    int i;
    for(i = 0; i < length; ++i)
    {
        if(array[i] == value)
            ++count;
    }
    return count;
}

...
int nums[] =  {1,2,2,2,3};
printf("%d occurs %d times\n", 2, count_in_array(2, nums, 5));