练习14—元素求和

简介: 练习14—元素求和

题目

从键盘输入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()释放;
相关文章
|
12月前
二维数组求和 练习
二维数组求和 练习
55 0
|
网络架构 Python
矩阵各行元素之和
矩阵各行元素之和
66 0
|
机器学习/深度学习 Windows
1228 序列求和 (伯努利数)
1228 序列求和 (伯努利数)
69 0
R7-5 求矩阵各行元素之和
R7-5 求矩阵各行元素之和
84 0
|
存储 算法 索引
算法 | 100000 个数的求和只需要 O(1),可能吗?
算法 | 100000 个数的求和只需要 O(1),可能吗?
83 0
算法 | 100000 个数的求和只需要 O(1),可能吗?
|
机器学习/深度学习 存储 算法
【简单算法】1.两数之和,给定整数数组和目标值,找出数组中2数之和等于目标值的元素
【简单算法】1.两数之和,给定整数数组和目标值,找出数组中2数之和等于目标值的元素
【简单算法】1.两数之和,给定整数数组和目标值,找出数组中2数之和等于目标值的元素
|
C#
【C#】输出正序、逆序、最大值、最小值和平均值
正序、逆序、最大值、最小值和平均值
295 1
【C#】输出正序、逆序、最大值、最小值和平均值
014.求解二维数组的最大最小元素
014.求解二维数组的最大最小元素
74 0