当前位置: 首页 > news >正文

【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

输出:

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

最后建议大家学习编程的时候多刷题练习,这里推荐牛客网👍,不仅集成了丰富的题库可供刷题,还有学习资源库交流讨论区面试经验分享实习校招社招内推消息等等。
👉传送门:牛客网

相关文章:

  • NOIP 2013 普及组初赛试题
  • 【C语言】如何理解多级指针?
  • 【golang】sorter 的两种实现方式
  • 2022.9.2 OpenCV课程群思考题
  • 408王道操作系统强化——文件管理及大题解构
  • 【MyBatis笔记10】Mybatis中几个动态SQL标签和内置参数
  • 7.Nodejs新特性async和await的使用
  • 怎么安装一个简单的vue3.0框架。整个流程.::
  • 【延展Extension Objective-C语言】
  • IDA* AcWing 181. 回转游戏
  • Web3小知识集锦
  • tensorflow基础
  • android自定义Apk名称和指定生成的路径
  • java框架----SSM快速整合教程
  • mongodb基本操作及使用
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • 2019年如何成为全栈工程师?
  • C语言笔记(第一章:C语言编程)
  • ES6 学习笔记(一)let,const和解构赋值
  • git 常用命令
  • Hexo+码云+git快速搭建免费的静态Blog
  • Javascript 原型链
  • JavaScript对象详解
  • JavaWeb(学习笔记二)
  • js操作时间(持续更新)
  • Windows Containers 大冒险: 容器网络
  • 阿里研究院入选中国企业智库系统影响力榜
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 翻译 | 老司机带你秒懂内存管理 - 第一部(共三部)
  • 那些被忽略的 JavaScript 数组方法细节
  • 怎么把视频里的音乐提取出来
  • ​Linux·i2c驱动架构​
  • # include “ “ 和 # include < >两者的区别
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • (¥1011)-(一千零一拾一元整)输出
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (SpringBoot)第二章:Spring创建和使用
  • (附源码)springboot教学评价 毕业设计 641310
  • (顺序)容器的好伴侣 --- 容器适配器
  • (已解决)报错:Could not load the Qt platform plugin “xcb“
  • (转)C#调用WebService 基础
  • (转)创业的注意事项
  • ./和../以及/和~之间的区别
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例
  • .NET Core使用NPOI导出复杂,美观的Excel详解
  • .NET 同步与异步 之 原子操作和自旋锁(Interlocked、SpinLock)(九)
  • .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly)
  • .Net+SQL Server企业应用性能优化笔记4——精确查找瓶颈
  • .net安装_还在用第三方安装.NET?Win10自带.NET3.5安装
  • .net和jar包windows服务部署
  • .NET面试题解析(11)-SQL语言基础及数据库基本原理
  • .NET上SQLite的连接
  • /var/lib/dpkg/lock 锁定问题
  • @cacheable 是否缓存成功_Spring Cache缓存注解