文章目录
- 题目
- 代码
- 运行截图
- 题目
- 代码
- 运行截图
题目
(打印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);
}
运行截图
中间有几道题做了很久,暂时还没做出来,后续学习的更加完善后,会完善这些习题。