练习使用malloc和free函数:输入n及n个整数,输出它们的总和、最大数和最小数。
时间: 2024-02-05 14:11:11 浏览: 38
下面是一个使用`malloc`和`free`函数的示例程序,可以满足你的需求:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int n, *arr;
int sum = 0, max = 0, min = 0;
printf("请输入n:");
scanf("%d", &n);
arr = (int *) malloc(n * sizeof(int));
for (int i = 0; i < n; i++) {
printf("请输入第%d个整数:", i + 1);
scanf("%d", &arr[i]);
}
// 计算总和、最大数、最小数
for (int i = 0; i < n; i++) {
sum += arr[i];
if (i == 0 || arr[i] > max) {
max = arr[i];
}
if (i == 0 || arr[i] < min) {
min = arr[i];
}
}
printf("总和:%d\n", sum);
printf("最大数:%d\n", max);
printf("最小数:%d\n", min);
free(arr);
return 0;
}
```
程序中,我们首先通过`malloc`函数动态分配了一个长度为`n`的整型数组,然后通过`for`循环依次输入这`n`个整数。接着,我们再用另一个`for`循环计算这`n`个整数的总和、最大数和最小数,并输出这三个结果。最后,我们通过`free`函数释放了之前动态分配的内存空间。
需要注意的是,在使用`malloc`函数动态分配内存之后,我们必须使用`free`函数来释放这些内存空间,否则会造成内存泄漏。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)