在C中,我如何计算特定元素在数组中出现的次数?然后如何向用户显示该计数?
例如,如果我有一个由{1, 2, 2, 2, 3}
组成的数组。如何编写一个代码,告诉我2
出现3次,然后将其显示给用户?
答案 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));