用c语言编写一个能统计一个一维整形数组中每个数据出现的频率并输入的小程序
时间: 2024-12-18 08:16:43 浏览: 13
在C语言中,你可以使用一个哈希表(这里通常用数组+索引的方式模拟哈希表的功能)来实现这个功能。下面是一个简单的例子:
```c
#include <stdio.h>
#define ARRAY_SIZE 100 // 假设数组最大长度
// 使用一个数组作为哈希表存储每个元素及其计数
int frequency[ARRAY_SIZE] = {0};
void input_array(int arr[], int size) {
for (int i = 0; i < size; i++) {
scanf("%d", &arr[i]);
frequency[arr[i]]++; // 对于读取到的每个元素,增加其计数
}
}
void print_frequency(int arr[]) {
printf("元素\t频率\n");
for (int i = 0; i < ARRAY_SIZE; i++) {
if (frequency[i]) {
printf("%d\t%d\n", i, frequency[i]); // 输出非零计数的元素及次数
}
}
}
int main() {
int array[ARRAY_SIZE];
int size;
printf("请输入整数数组的大小(不大于%d): ", ARRAY_SIZE);
scanf("%d", &size);
printf("请输入数组元素:\n");
input_array(array, size);
print_frequency(array);
return 0;
}
```
这个程序首先声明了一个用于存储频率的数组`frequency[]`,然后通过用户输入获取数组,并遍历数组更新频率。最后,它会打印出每个元素以及它们在数组中出现的次数。
阅读全文