对于一个有限的正整数序列,从小到大依次输出序列中出现的数及出现次数 c语言
时间: 2024-12-17 08:42:36 浏览: 14
在C语言中,如果你需要统计并打印一个给定的正整数序列及其出现次数,你可以使用数组和哈希表(如果语言支持的话,通常用结构体和关联数组模拟)。这里有一个简单的示例:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100
typedef struct {
int number;
int count;
} Frequency;
void count_numbers(int arr[], int n) {
// 创建频率表,初始化所有元素计数为0
Frequency freq[MAX_SIZE] = { {0, 0}, {0, 0}, ... };
for (int i = 0; i < n; i++) {
// 检查当前数字是否在范围内,并增加计数
if (arr[i] >= 0 && arr[i] < MAX_SIZE) {
freq[arr[i]].count++;
}
}
// 打印每个数字及其出现次数
for (int i = 0; i < MAX_SIZE; i++) {
if (freq[i].number != 0) {
printf("%d appears %d times.\n", i, freq[i].count);
}
}
}
int main() {
int numbers[] = {1, 5, 2, 6, 1, 2, 4, 5, 5};
int size = sizeof(numbers) / sizeof(numbers[0]);
count_numbers(numbers, size);
return 0;
}
```
在这个例子中,`count_numbers`函数接收一个整数数组和其长度,遍历数组并将每个数字及其出现次数存储在`Frequency`结构体的数组`freq`中。然后在主函数中调用这个函数并传入具体的数组。
阅读全文