一、自己原先解法
#include <stdio.h> int cal(int* array, int n) { int ret = 0; for (int i = 0; i < n; i++) { ret += array[i]; } return ret; } int main() { int arr[100]; int n; int num; int sum; scanf("%d", &n); for (int i = 0; i < n; i++) { scanf("%d", &num); arr[i] = num; } sum = cal(arr, n); printf("%d", sum); return 0; }
二、看别人之后,改进的解法
#include <stdio.h> #include <stdlib.h> int cal(int* array, int n) { int ret = 0; for (int i = 0; i < n; i++, array++) { ret += *array; } return ret; } int main() { int n; int num; int sum; scanf("%d", &n); int* arr = (int*)malloc(n * sizeof(int)); for (int i = 0; i < n; i++) { scanf("%d", &num); arr[i] = num; } sum = cal(arr, n); printf("%d", sum); return 0; }
心得:
学会使用malloc函数动态申请内存。