当前位置 博文首页 > Jason's Blog:练习14—元素求和

    Jason's Blog:练习14—元素求和

    作者:[db:作者] 时间:2021-09-01 10:33

    题目

    从键盘输入n (个数不限)个整形数字,放入数组PArray, 调用函数 int *Calc(int *PA,int Num); 计算数组中所有元素的和返回到 main 函数,输出计算结果。

    解题步骤

    (1)定义数组、变量;
    (2)接收设定值;
    (3)分配内存空间;
    (4)元素求和;
    (5)输出;

    C语言

    #include <stdio.h>
    #include <stdlib.h>
    
    int *Calc(int *PA, int Num)
    {
    
        int sum = 0, i;
        for (i = 0; i < Num; i++)
        {
            sum += PA[i];
        }
        PA[0] = sum;
        return PA;
    }
    
    int main()
    {
        int *PArray = NULL;
        int Total = 0, i = 0;
        printf("enter the number of elements in arrays:\n");
        scanf("%d", &Total);
        PArray = (int *)malloc(Total * sizeof(int));
        printf("give %d element assignment:\n", Total);
        for (i = 0; i < Total; i++)
        {
            scanf("%d", &PArray[i]);
        }
        PArray = Calc(PArray, Total);
        printf("Sum=%d\n", *PArray);
        free(PArray);
        return 0;
    }
    

    说明

    1. 使用指针,及时初始化;
    2. 动态分配内存空间,包含头文件<stdlib.h>,函数原型void* malloc (size_t size);返回值类型是void *,void 表示返回未知指针类型。
    3. 通常,malloc()使用时需要进行强制类型转换,如(int *)malloc(Total * sizeof(int));修改 void 指针为所需类型;
    4. Calc()为指针类型函数,值 sum 返回主函数时不可直接返回。将 sum 值存入数组首地址,也就是作为第一个元素,返回数组首地址即可;
    5. 动态申请的内存空间最后要使用free()释放;
    cs
    下一篇:没有了