练习使用malloc和free函数:输入n及n个整数,输出它们的总和、 最大数和最小数。
时间: 2023-12-10 19:39:33 浏览: 81
malloc函数介绍及示例
以下是使用 `malloc` 和 `free` 函数实现输入 n 个整数并计算它们的总和、最大数和最小数的 C 代码:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int n, i, *arr, sum = 0, max, min;
printf("请输入 n 的值:");
scanf("%d", &n);
arr = (int *) malloc(n * sizeof(int)); // 动态分配内存
for (i = 0; i < n; i++) {
printf("请输入第 %d 个整数:", i + 1);
scanf("%d", &arr[i]);
sum += arr[i];
if (i == 0) { // 初始化 max 和 min
max = arr[i];
min = arr[i];
} else {
if (arr[i] > max) {
max = arr[i];
}
if (arr[i] < min) {
min = arr[i];
}
}
}
printf("总和为:%d\n", sum);
printf("最大值为:%d\n", max);
printf("最小值为:%d\n", min);
free(arr); // 释放内存
return 0;
}
```
在上述代码中,我们先通过 `malloc` 函数动态分配了一个大小为 `n` 个 `int` 类型的数组 `arr`,然后通过循环输入 `n` 个整数,并计算它们的总和、最大数和最小数。最后通过 `free` 函数释放了动态分配的内存,避免了内存泄漏的问题。
阅读全文