动态创建一个数组,输入10型变量,求平均值,并将小于平均值的所有数输出
时间: 2024-10-17 11:03:06 浏览: 33
java代码-数组的最大值,最小值,平均值
在C语言中,你可以使用`malloc()`函数动态地为数组分配内存,然后根据用户的输入动态地初始化数组。这里是一个简单的示例,展示了如何实现这个功能:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int n, i;
double sum = 0, average, arr[10];
// 获取用户输入的元素个数
printf("Enter the number of elements: ");
scanf("%d", &n);
// 检查输入是否合法(不超过数组大小)
if (n <= 0 || n > 10) {
printf("Invalid input. Please enter a number between 1 and 10.\n");
return 1;
}
// 动态分配内存
arr = (double*)malloc(n * sizeof(double));
// 输入并计算数组元素的总和
for (i = 0; i < n; i++) {
printf("Enter element %d: ", i + 1);
scanf("%lf", &arr[i]);
sum += arr[i];
}
// 计算平均值
average = sum / n;
// 打印平均值
printf("Average value: %.2f\n", average);
// 输出小于平均值的数
printf("Numbers less than the average:\n");
for (i = 0; i < n; i++) {
if (arr[i] < average) {
printf("%.2f ", arr[i]);
}
}
printf("\n");
// 释放内存
free(arr);
return 0;
}
```
这段代码首先询问用户要输入多少个元素,然后检查输入的有效性。接着,程序动态分配了一个长度为`n`的`double`类型的数组,并要求用户依次输入每个元素。之后,计算数组的平均值,并打印所有小于平均值的数字。最后别忘了用`free()`函数释放动态分配的内存,以避免内存泄漏。
阅读全文