• 【C++之数组与指针2】利用指针对数组求和


    【C++之数组与指针1】随机输入整数存入数组并用指针遍历
    上一篇博客介绍了数组与指针的基本概念。这篇博客也将会用到数组与指针。

    本题收录于 牛客网 在线编程-语法篇-C语言入门-01指针-CC5
    在这里插入图片描述

    题目

    描述

    牛牛学习了指针相关的知识,想实现一个 int cal(int *array,int n) 的函数求出长度为 n 的数组的和。

    输入描述:

    第一行输入一个正整数 n ,表示数组的长度
    第二行输入 n 个正整数,表示数组中每个数字的值

    输出描述:

    实现 int cal(int *array,int n) 求出数组array的和

    示例1

    输入:

    5
    2 8 1 9 5
    
    • 1
    • 2

    输出:

    25
    
    • 1

    代码

    此题属于入门题
    第一行输入一个正整数 n ,表示数组的长度:

    int num;
    scanf("%d", &num);
    
    • 1
    • 2

    第二行输入 n 个正整数,表示数组中每个数字的值:

    int arr[num];
    for(int i = 0; i < num; i++)
    {
       scanf("%d", &arr[i]);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    输入:

    5
    2 8 1 9 5
    
    • 1
    • 2

    函数定义:

    int cal(int *array, int n)
    {
        int sum = 0;
        int* ptr = array;
        for(int i = 0; i < n; i++)
        {
            sum += *(ptr + i);
        }
        return sum;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    指针的用法可以参考上一篇博客。这里表达式 *(ptr+i) 表示当前指针指向的地址向后偏移 i 个位置。

    调用函数并输出最终结果:

    int sum = cal(arr, num);
    cout << sum;
    
    • 1
    • 2

    完整代码:

    #include
    using namespace std;
    
    int cal(int *array, int n)
    {
        int sum = 0;
        int* ptr = array;
        for(int i = 0; i < n; i++)
        {
            sum += *(ptr + i);
        }
        return sum;
    }
    
    int main()
    {
        int num;
        scanf("%d", &num);
        
        int arr[num];
        for(int i = 0; i < num; i++)
        {
            scanf("%d", &arr[i]);
        }
        
        int sum = cal(arr, num);
        cout << sum;
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    输出:

    25
    
    • 1
  • 相关阅读:
    LabVIEW太赫兹波扫描成像系统
    P1506 拯救oibh总部
    一文了解 io.Copy 函数
    设计模式浅析(五) ·单例模式
    关于Vuex的基础使用存值及异步
    xss跨站脚本(cross-site scripting)
    展开说说:Android之SharedPreferences
    React进阶
    SSM 高校心理测评系统
    数学建模笔记-第五讲-相关系数
  • 原文地址:https://blog.csdn.net/weixin_43470383/article/details/126671316