可以实现数组大小由用户键入:
#include<stdio.h>
#include<stdlib.h>
int i;
void InputArray(int *p, int n);
int ArraySum(int *p, int n);
int main()
{
int *p = NULL;
int n, sum = 0;
printf("Please enter the size of array.\n");
scanf("%d", &n);
p = (int *)malloc(n * sizeof(int)); /*向系统申请n个int型数据的内存*/
if (p == NULL) /*确保指针使用前是非空指针,否则结束程序运行*/
{
printf("No enough memory.\n");
exit(1); /*异常退出当前程序*/
}
printf("Please assign values to the array.");
InputArray(p, n);
sum = ArraySum(p, n);
printf("The data input are as follows:\n");
for (i = 0; i < n; i++)
printf("%d\t", p[i]);
printf("\n");
printf("The sum of data is %d", sum);
free(p); /*释放向系统申请的内存。*/
return 0;
}
void InputArray(int *p, int n)
{
for (i = 0; i < n; i++)
scanf("%d\t", &p[i]);
}
int ArraySum(int *p, int n)
{
int ans;
for (i = 0; i < n; i++)
ans += p[i];
return ans;
}