假定在一个整型数组中,每一个元素都是不超过两位数的正整数,试用C语言编写一个函数,统计该数组全部元素中数字0,1,2,3,....,9各出现多少次。在主函数中采用下列方法输入数据int a[ ]={5, 26, 98, 77, 1, 27, 30};
时间: 2024-05-07 13:18:00 浏览: 19
好的,我来编写这个函数。可以使用一个长度为10的整型数组来记录每个数字出现的次数,然后遍历给定的整型数组,对于每个元素,将对应数字出现的次数加1即可。最后返回记录数字出现次数的数组。
以下是代码实现:
```c
#include <stdio.h>
int* countDigits(int arr[], int n) {
static int count[10] = {0}; // 初始化为0
for (int i = 0; i < n; i++) {
int num = arr[i];
while (num > 0) {
count[num % 10]++;
num /= 10;
}
}
return count;
}
int main() {
int a[] = {5, 26, 98, 77, 1, 27, 30};
int n = sizeof(a) / sizeof(a[0]);
int* count = countDigits(a, n);
for (int i = 0; i < 10; i++) {
printf("%d出现了%d次\n", i, count[i]);
}
return 0;
}
```
输出结果为:
```
0出现了1次
1出现了2次
2出现了2次
3出现了0次
4出现了0次
5出现了1次
6出现了1次
7出现了2次
8出现了1次
9出现了0次
```