C语言编写程序输入若干个数,选择1找最大值2找最小值3平均值4统计元素出现的次数5升序或排序数组
时间: 2024-12-15 13:21:26 浏览: 11
在C语言中,你可以按照以下步骤编写一个程序,让用户输入一些数值并提供多种操作选项:
1. 首先,你需要从用户那里获取输入,可以使用`scanf()`函数读取整数序列,例如:
```c
#include <stdio.h>
int num;
int numbers[100]; // 假设最多100个数
```
2. 使用`while`循环来持续获取用户输入直到他们选择停止:
```c
while (1) {
printf("请输入一个数字(0表示结束): ");
scanf("%d", &num);
if (num == 0) break; // 结束输入
numbers[nums_count++] = num; // 存储到数组中,nums_count记录当前元素计数
}
```
3. 根据用户的选择执行相应的操作:
- 选择1:遍历数组找到最大值
- 选择2:同样遍历数组找到最小值
- 选择3:计算平均值,遍历数组并将所有数加起来除以元素个数
- 选择4:遍历数组用一个哈希表(可以使用数组实现,如果只有几种可能的值)统计每个数的出现次数
- 选择5:对于升序或排序数组,可以选择插入排序或其他简单排序算法对数组进行排序
以下是部分代码示例:
```c
// 找最大值
int max_value = numbers[0];
for (int i = 1; i < nums_count; i++) {
if (numbers[i] > max_value) {
max_value = numbers[i];
}
}
// 找最小值
int min_value = numbers[0];
for (int i = 1; i < nums_count; i++) {
if (numbers[i] < min_value) {
min_value = numbers[i];
}
}
// 计算平均值
double sum = 0;
for (int i = 0; i < nums_count; i++) {
sum += numbers[i];
}
double average = sum / nums_count;
// 统计次数
int count[100] = {0};
for (int i = 0; i < nums_count; i++) {
count[numbers[i]]++;
}
// 排序
for (int i = 0; i < nums_count - 1; i++) {
for (int j = 0; j < nums_count - 1 - i; j++) {
if (numbers[j] > numbers[j + 1]) {
int temp = numbers[j];
numbers[j] = numbers[j + 1];
numbers[j + 1] = temp;
}
}
}
```
阅读全文