C++学习笔记七之使用数组区间的函数
来源:互联网 发布:mac怎样整理文件 编辑:程序博客网 时间:2024/05/22 06:58
前面已经学习过求一个数组的总和,现在我要求数组中的一个区间的值的和,假设我要求第2个元素到第6个元素的和,只能连续。这里就需要有一个函数来进行求和,指定一个初始位置和一个结束位置,然后求得初始位置到结束位置的值的和。这里有两种方法求解,一种是用指针来指向数组的起始位置和结束位置;另一种是用数组的下标来代表数组的起始位置和结束位置。
首先要知道数组名其实就是一个指针,它指向的是数组的起始位置,arr=&arr[0];
【示例代码】
#include <iostream>#include <stdlib.h>const int ArSize = 8;int sum_arr(const int *begin,const int *end);int sum_love(int cook[],const int begin,const int end);int main(){using namespace std;int cook [ArSize]= {1,2,3,4,5,6,7,8};int sum = sum_arr(cook,cook+ ArSize);//数组名代表第一个元素的地址cout << "Total cook eaten: " << sum << endl;sum = sum_arr(cook, cook + 3);cout << "First three eaters ate "<<sum<<" cook.\n";sum = sum_arr(cook+4, cook+8);cout << "Last four eaters ate " << sum << " cook.\n";//直接用数组名int sum1 = sum_love(cook,0,8);cout << "cook: " << cook<<endl;cout << "输出前三个值的和:"<<sum1<<endl;system("pause");return 0;}int sum_arr(const int *begin,const int *end){using namespace std;const int *pt;int total = 0;for (pt=begin;pt!=end;pt++){total = total + *pt;}cout << "begin: " << begin << "\t" << endl;return total;}int sum_love(int cook[],const int begin,const int end){using namespace std;int total = 0;for (size_t i = begin; i<end; i++){total = total+cook[i];}return total;}【代码解析】
int sum_arr(const int *begin,const int *end){using namespace std;const int *pt;int total = 0;for (pt=begin;pt!=end;pt++){total = total + *pt;}cout << "begin: " << begin << "\t" << endl;return total;}这里一开始的参数是两个指针,分别指向数组区间的起始位置begin和结束位置end。然后定义了一个int类型的指针pt,进入for循环中,把传入的begin(也就是区间起始地址)赋给了pt作为for循环的起始值,开始遍历求和,直到等于end,循环结束。
int sum = sum_arr(cook,cook+ ArSize);//数组名代表第一个元素的地址注意:这里的cook+ArSize是指向数组的结束位置的下一个位置,所以cook+(ArSize-1)才是数组的结束位置。假设begin=0;end=5;上面for循环求和求的是前5个值的和,也就是0到4的值的和。
【演示结果】
阅读全文
0 0
- C++学习笔记七之使用数组区间的函数
- c++学习笔记(七):函数返回数组
- 【C/C++学习】之七、指向函数的指针
- C#OOP之七 多态的学习和使用
- 黑马程序员----C 语言学习笔记之结构体数组,指针,嵌套的使用
- 【C++】学习笔记四十七——类的构造函数和析构函数
- C学习笔记之函数
- 现代OpenGL+Qt学习笔记之七:Phong光照及在GLSL中使用函数
- java 从零开始,学习笔记之基础入门<数组>(七)
- C Primer Plus学习 四十八 使用结构数组的函数
- <<C语言深度剖析>>学习之七之函数
- C学习笔记(七)字符串与字符串函数
- c++pirmer 学习笔记之数组
- c语言学习笔记之数组小结
- C语言学习笔记之数组
- python学习笔记(七)之函数传递列表
- c++Primer学习笔记之七:第二章课后习题
- 【Visual C++】游戏编程学习笔记之七:键盘输入消息
- oracle 11g 查看服务端/客户端编码,及修改db编码
- JS面向对象的程序设计
- Python的zip函数
- Educational Codeforces Round 2 C. Make Palindrome —— 贪心 + 回文串
- DOS DIR 命令 详解
- C++学习笔记七之使用数组区间的函数
- SpringMVC 定时任务的配置
- 媒体报道 | 创业邦:巴别鸟,一款便捷好用的企业级文件协同网盘
- github vs gitlab 工作量统计
- 【jzoj5219】【GDOI2018模拟7.10】【B】【动态规划】
- 配置采购订单审批报错: Please check release classes (see long text)
- Android 使用数学函数(Math函数)
- 在地图上画正六边形时出现的问题(d3)
- ajax初级入门(案例演示)