c語言統(tǒng)計(jì)各個(gè)數(shù)字出現(xiàn)次數(shù) C語言數(shù)字統(tǒng)計(jì)方法
統(tǒng)計(jì)數(shù)字出現(xiàn)次數(shù)在編程中是一個(gè)常見的需求,本文將以C語言為例,介紹幾種常用的統(tǒng)計(jì)方法,并通過實(shí)例演示來深入理解其應(yīng)用。方法一: 使用數(shù)組在C語言中,我們可以使用一個(gè)長度為10(代表0-9)的整型數(shù)組來
統(tǒng)計(jì)數(shù)字出現(xiàn)次數(shù)在編程中是一個(gè)常見的需求,本文將以C語言為例,介紹幾種常用的統(tǒng)計(jì)方法,并通過實(shí)例演示來深入理解其應(yīng)用。
方法一: 使用數(shù)組
在C語言中,我們可以使用一個(gè)長度為10(代表0-9)的整型數(shù)組來存儲(chǔ)每個(gè)數(shù)字出現(xiàn)的次數(shù)。首先,將數(shù)組的所有元素初始化為0。然后,遍歷待統(tǒng)計(jì)的數(shù)字序列,對于每個(gè)數(shù)字,我們可以利用其ASCII碼值與字符'0'的ASCII碼值之間的差來確定其在數(shù)組中的位置,然后相應(yīng)位置的計(jì)數(shù)器加一。最后,我們可以輸出數(shù)組中每個(gè)位置的計(jì)數(shù)器值,即得到了每個(gè)數(shù)字出現(xiàn)的次數(shù)。
方法二: 使用位運(yùn)算
如果數(shù)字序列較大且數(shù)字范圍較小,可以考慮使用位運(yùn)算來進(jìn)行統(tǒng)計(jì)。我們可以使用一個(gè)長度為32(int類型的位數(shù))的整型數(shù)組來表示每個(gè)數(shù)字的出現(xiàn)情況。首先,將數(shù)組的所有元素初始化為0。然后,遍歷待統(tǒng)計(jì)的數(shù)字序列,對于每個(gè)數(shù)字,我們可以利用位運(yùn)算的左移和按位或操作,將對應(yīng)的位置置1。最后,我們可以通過遍歷數(shù)組,計(jì)算每個(gè)數(shù)字在序列中出現(xiàn)的次數(shù)。
實(shí)例演示:
假設(shè)我們有一個(gè)整型數(shù)組nums,長度為n,存儲(chǔ)了一組數(shù)字?,F(xiàn)在我們需要統(tǒng)計(jì)其中每個(gè)數(shù)字出現(xiàn)的次數(shù)。
代碼示例:
```c
#include
void countDigits(int nums[], int n) {
int counts[10] {0}; // 初始化計(jì)數(shù)數(shù)組
for (int i 0; i < n; i ) {
int digit nums[i];
counts[digit] ;
}
printf("數(shù)字出現(xiàn)次數(shù)統(tǒng)計(jì)結(jié)果:
");
for (int i 0; i < 10; i ) {
printf("%d: %d
", i, counts[i]);
}
}
int main() {
int nums[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
int n sizeof(nums) / sizeof(nums[0]);
countDigits(nums, n);
return 0;
}
```
運(yùn)行結(jié)果:
數(shù)字出現(xiàn)次數(shù)統(tǒng)計(jì)結(jié)果:
0: 1
1: 1
2: 1
3: 1
4: 1
5: 1
6: 1
7: 1
8: 1
9: 1
以上示例代碼演示了使用數(shù)組方法來統(tǒng)計(jì)一組數(shù)字中每個(gè)數(shù)字出現(xiàn)的次數(shù)。讀者可以根據(jù)實(shí)際需求進(jìn)行修改和擴(kuò)展,以適應(yīng)不同的場景。
結(jié)論:
本文介紹了C語言中統(tǒng)計(jì)各個(gè)數(shù)字出現(xiàn)次數(shù)的兩種常用方法,并通過實(shí)例演示來幫助讀者更好地理解和應(yīng)用。在實(shí)際編程中,可以根據(jù)具體需求選擇合適的方法來完成數(shù)字統(tǒng)計(jì)任務(wù)。