在 C 中,如何计算特定元素在数组中出现的次数?然后如何向用户显示该计数?
例如,如果我有一个由{1, 2, 2, 2, 3}
. 如何编写一个代码告诉我2
出现 3 次,然后将其显示给用户?
如果只想计算所有元素:假设数组只能包含有限范围的整数,请声明另一个长度为第一个数组中的最大条目的数组。遍历第一个数组并将第二个数组索引中的位置增加第一个数组,然后打印出第二个数组。
伪代码:
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));