文章目录
- 题目
- 代码
- 运行截图
- 题目
- 代码
- 运行截图
题目
(打印array对象)编写一个递归函数printArray它以一个array对象一个开始下标和一个结束下标作为实参,不返回任何值并打印这个array对象。当开始下标和结束下标相等时,这个函数应该停止处理并返回。
代码
#include <iostream>
#include <array>using namespace std;const int arraySize = 15;
void printArray(array<int, arraySize>, int, int);int main()
{array<int, arraySize> items = {1, 2, 3, 4, 5, 6, 7, 8, 5, 6};int begin, end;cout << "该array对象的数组长度为" << arraySize << endl;cout << "请输入需要打印的array对象的开始下标和结束下标:";cin >> begin >> end;printArray(items, begin, end);return 0;
}void printArray(array<int, arraySize> arr, int a, int b)
{if (a < 0 || a > arraySize || b < a || b > arraySize){return;}cout << arr[a] << " ";printArray(arr, a + 1, b);
}
运行截图
题目
(逆序打印字符串)编写一个递归函数stringReverse,该函数以一个string对象和一个开始下标作为实参,逆序打印这个字符串且不返回任何值。当到达这个字符串的末尾时,函数应当停止处理并返回。请注意,像array对象一样,方括号运算符([])可用来迭代遍历一个字符串中的所有字符。
代码
#include <iostream>
#include <string>using namespace std;void stringReverse(string, int);int main()
{string str;cout << "请输入需要逆序的字符串:";getline(cin, str);cout << "该字符串的长度是" << str.size() << endl;int begin;cout << "请输入从哪个下标开始逆序:";cin >> begin;stringReverse(str, begin);return 0;
}void stringReverse(string str, int begin)
{ // 逆序字符串if (begin < 0 || begin >= str.size()){return;}cout << str[begin];stringReverse(str, begin - 1);
}
运行截图
中间有几道题做了很久,暂时还没做出来,后续学习的更加完善后,会完善这些习题。