求数组中所有元素的和指针

从键盘输入n(个数不限)个整形数字,放到数组PArray中,然后调用函数int *Calc(int *PA,int Num);计算出数组中所有元素的和返回给main函数,并将其输出在start********end里添加代码

第1个回答  2017-04-30
#include <stdio.h>                                                                                                                                                                                          
#include <stdlib.h>
int *Calc(int *PA, int Num);

int main()
{
    int *pArray = NULL;
    int Total = 0, i = 0;
    printf("输入数组中元素的个数:\n");
    scanf("%d", &Total);
    /***********start*************/
    // 分配Total+1个是保存Total个元素以及各元素的和
    pArray = (int*)malloc(sizeof(int) * (Total+1));
    if(pArray)
        memset(pArray, 0, sizeof(int) * (Total+1));
    while(i < Total) {
        scanf("%d", &pArray[i++]);
    }
    int* pValue = Calc(pArray, Total);
    printf("数组中所有元素的和:%d", *pValue);
    /***********end**************/
    printf("\n");
    free(pArray);
}
int *Calc(int *PA, int Num)
{
    /***********start*************/
    int i = 0;
    // 将最后的元素计算成各元素的和
    while(i < Num)
        PA[Num] =  PA[Num] + PA[i++];
    return &PA[Num];
    /***********end**************/
}

本回答被提问者和网友采纳
相似回答