-2

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

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

4

1 回答 1

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));
于 2013-05-18T04:07:36.490 回答