C语言结构体从键盘输入n个数直到小于等于0为止,求最大值最小值和平均数
时间: 2024-12-17 20:55:49 浏览: 7
在C语言中,你可以创建一个结构体来存储n个整数,并通过循环从用户那里获取输入。首先,定义一个结构体,比如`numbers_t`,包含一个数组和两个成员变量用于存储最大值、最小值:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct {
int* numbers; // 数组
int n; // 数字个数
int max; // 最大值
int min; // 最小值
} numbers_t;
void input_numbers(numbers_t* nums) {
nums->n = 0;
while (true) {
int num;
scanf("%d", &num);
if (num <= 0) break;
nums->numbers = realloc(nums->numbers, sizeof(int) * (nums->n + 1));
nums->numbers[nums->n] = num;
nums->n++;
nums->max = (nums->n == 1) ? num : (num > nums->max) ? num : nums->max;
nums->min = (nums->n == 1) ? num : (num < nums->min) ? num : nums->min;
}
}
double calculate_average(numbers_t* nums) {
return nums->n == 0 ? 0 : (double)(nums->max + nums->min) / nums->n;
}
int main() {
numbers_t numbers;
input_numbers(&numbers);
printf("最大值: %d\n", numbers.max);
printf("最小值: %d\n", numbers.min);
printf("平均值: %.2f\n", calculate_average(&numbers));
free(numbers.numbers);
return 0;
}
```
在这个程序中,我们首先定义了一个`input_numbers`函数来接收用户输入,然后计算最大值和最小值。`calculate_average`函数负责计算平均值。最后,在`main`函数中,我们创建一个`numbers_t`实例并调用这些函数。
阅读全文