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

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


本题收录于 牛客网 在线编程-语法篇-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

输出:

25

代码

此题属于入门题

第一行输入一个正整数 n ,表示数组的长度:

int num;
scanf("%d", &num);

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

int arr[num];
for(int i = 0; i < num; i++)
{
   scanf("%d", &arr[i]);
}

输入:

5
2 8 1 9 5

函数定义:

int cal(int *array, int n)
{
    int sum = 0;
    int* ptr = array;
    for(int i = 0; i < n; i++)
    {
        sum += *(ptr + i);
    }
    return sum;
}

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

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

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

完整代码:

#include<iostream>
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;
}

输出:

25
相关文章
|
17小时前
|
存储 安全 编译器
【C++航海王:追寻罗杰的编程之路】引用、内联、auto关键字、基于范围的for、指针空值nullptr
【C++航海王:追寻罗杰的编程之路】引用、内联、auto关键字、基于范围的for、指针空值nullptr
10 5
|
2天前
|
存储 Java C#
C++语言模板类对原生指针的封装与模拟
C++|智能指针的智能性和指针性:模板类对原生指针的封装与模拟
|
1天前
|
C语言
【C语言】:详解函数指针变量,函数指针数组及转移表
【C语言】:详解函数指针变量,函数指针数组及转移表
8 2
|
2天前
|
设计模式 C++ 开发者
C++一分钟之-智能指针:unique_ptr与shared_ptr
【6月更文挑战第24天】C++智能指针`unique_ptr`和`shared_ptr`管理内存,防止泄漏。`unique_ptr`独占资源,离开作用域自动释放;`shared_ptr`通过引用计数共享所有权,最后一个副本销毁时释放资源。常见问题包括`unique_ptr`复制、`shared_ptr`循环引用和裸指针转换。避免这些问题需使用移动语义、`weak_ptr`和明智转换裸指针。示例展示了如何使用它们管理资源。正确使用能提升代码安全性和效率。
13 2
|
1天前
|
C语言
【C语言】:详解指针数组,数组指针及(二维)数组传参(2)
【C语言】:详解指针数组,数组指针及(二维)数组传参(2)
6 1
|
1天前
|
Serverless C语言
【C语言】:对(一维)数组与指针的深入理解(1)
【C语言】:对(一维)数组与指针的深入理解(1)
5 1
|
2天前
|
存储 安全 算法
C++的内置数组和STL array、STL vector
C++的内置数组和STL array、STL vector
|
17小时前
|
C++
C++数组(定义、遍历、长度、地址、最大值、逆置、冒泡排序)
C++数组(定义、遍历、长度、地址、最大值、逆置、冒泡排序)
6 0
|
1天前
|
安全 编译器 C++
【C++】学习笔记——类和对象_5
【C++】学习笔记——类和对象_5
17 9