输入一组数据存入数组中,并将数据元素的个数动态地由输入函数完成。求输入数据的最大值、最小值,并通过函数参数返回所求结果 用c编程
时间: 2024-09-23 20:01:40 浏览: 51
在C语言中,你可以使用动态数组(`malloc`函数分配内存)来存储用户输入的数据,并通过循环遍历数组来找到最大值和最小值。下面是一个示例程序,展示了如何实现这个功能:
```c
#include <stdio.h>
#include <stdlib.h> // 包含 malloc 和 free 函数
// 定义一个动态数组结构
typedef struct {
int* data; // 指向整型数组的指针
int size; // 数组的大小
} DynamicArray;
// 动态创建数组并获取输入的元素个数
DynamicArray create_array(int* input, int n) {
DynamicArray arr;
arr.data = (int*)malloc(n * sizeof(int)); // 分配内存
if (!arr.data) { // 检查内存是否分配成功
printf("Memory allocation failed.\n");
exit(1);
}
for (int i = 0; i < n; i++) {
arr.data[i] = input[i]; // 存储输入值
}
arr.size = n;
return arr;
}
// 找到数组中的最大值和最小值
void find_min_max(DynamicArray arr, int* min, int* max) {
*min = arr.data[0];
*max = arr.data[0];
for (int i = 1; i < arr.size; i++) {
if (arr.data[i] > *max) {
*max = arr.data[i];
} else if (arr.data[i] < *min) {
*min = arr.data[i];
}
}
}
// 主函数,接收输入并打印结果
int main() {
int n;
printf("Enter the number of elements: ");
scanf("%d", &n);
int input[n];
printf("Enter %d numbers: ", n);
for (int i = 0; i < n; i++) {
scanf("%d", &input[i]);
}
DynamicArray arr = create_array(input, n);
int min, max;
find_min_max(arr, &min, &max);
printf("Minimum value: %d\n", min);
printf("Maximum value: %d\n", max);
free(arr.data); // 释放动态内存
return 0;
}
```
在这个程序中,我们首先创建了一个动态数组结构,然后根据用户输入的元素个数创建数组并存储数据。接着,我们定义一个函数`find_min_max`来寻找最小值和最大值,最后在主函数中调用这些函数并将结果打印出来。
阅读全文
相关推荐
















