c语言分别求任意10个数中的最大值、最小值、 平均值。(不用数组实现)
时间: 2024-11-25 15:17:07 浏览: 21
在C语言中,不使用数组直接计算10个随机数的最大值、最小值和平均值,可以使用结构体和函数来实现。这里是一个简单的示例:
首先,创建一个结构体来保存数字及其索引:
```c
typedef struct {
int value;
int index;
} Number;
```
然后,定义函数来获取新输入的数字并更新最大值、最小值:
```c
void addNumber(Number* numbers, int n, int num) {
if (n == 10) {
numbers[9].value = num; // 如果已满,替换最后一个
} else {
numbers[n].value = num;
numbers[n].index = n;
}
if (n == 0 || num > numbers[0].value) {
numbers[0].value = num; // 更新最大值
}
if (n == 0 || num < numbers[0].value) {
numbers[0].index = n; // 也更新最大值的索引
}
}
// 函数用于更新最小值
void updateMin(Number* numbers, int n, int num) {
if (n == 0 || num < numbers[0].value) {
numbers[0].value = num;
numbers[0].index = n;
}
}
```
接下来,我们需要计算平均值的辅助函数:
```c
double calculateAverage(const Number* numbers, int n) {
double sum = 0;
for (int i = 0; i < n; i++) {
sum += numbers[i].value;
}
return sum / n;
}
```
最后,主函数将调用上述函数获取用户输入,并显示结果:
```c
int main() {
Number numbers[10];
int n = 0;
while (n < 10) {
printf("Enter number %d: ", n + 1);
scanf("%d", &numbers[n].value);
addNumber(numbers, n, numbers[n].value); // 添加到结构体
updateMin(numbers, n, numbers[n].value); // 更新最小值
n++;
}
printf("Max: %d at index %d\n", numbers[0].value, numbers[0].index);
printf("Min: %d at index %d\n", numbers[0].value, numbers[0].index);
printf("Average: %.2f\n", calculateAverage(numbers, n));
return 0;
}
```
在这个程序中,`addNumber`和`updateMin`会随着每个新的数字输入而实时更新最大值和最小值,而`calculateAverage`则是在所有数字都输入完毕后计算平均值。
阅读全文