描述
牛牛学习了指针相关的知识,想实现一个 int cal(int *array,int n)
的函数求出长度为 n 的数组的和。
输入描述:
第一行输入一个正整数 n ,表示数组的长度
第二行输入 n 个正整数,表示数组中每个数字的值
输出描述:
实现 int cal(int *array,int n)
求出数组array的和
示例
输入:
5
2 8 1 9 5
输出:
25
题解
#include <stdio.h>
#include <stdlib.h> // 添加 malloc 需要的头文件
int cal(int* array, int n) {
int sum = 0;
for (int i = 0; i < n; i++) {
sum = sum + array[i];
}
return sum;
}
int main() {
int n;
scanf("%d", &n);
// 使用动态内存分配
int* array = (int*)malloc(n * sizeof(int));
for (int i = 0; i < n; i++) {
scanf("%d", &array[i]);
}
printf("%d", cal(array, n));
free(array);//释放内存
array = NULL;//避免悬空指针
}