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