在C中,如何計算特定元素出現在數組中的次數?然後如何向用戶顯示該計數?如何統計c中的數組中的元素
例如,如果我有一個由{1, 2, 2, 2, 3}
組成的數組。我如何編寫一個代碼告訴我2
出現3次,然後將其顯示給用戶?
在C中,如何計算特定元素出現在數組中的次數?然後如何向用戶顯示該計數?如何統計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));
好的,謝謝 –
'for(i = - ; i
http://rapidpurple.com/blog/tutorials/c-tutorials/programming-in-c -arrays-and-loops/ –
你應該嘗試發佈一些代碼或僞代碼或想法或任何關於你的嘗試。我的建議是寫下你如何自己做(如果你是一臺機器)在紙上。然後看看你是否可以將它翻譯成代碼。你肯定會在翻譯中遇到麻煩,但是你有更多更小更具體的問題需要思考。 – rliu
對陣列中可能出現的值範圍有任何限制嗎?如果它只有小於1000的正值,那麼這是微不足道的 - 只需要計數的第二個數組。如果可能發生任何可能的值,那就不那麼簡單了。 – Bull