一、自己原先解法
#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函数动态申请内存。



京公网安备 11010502036488号