gpt4 book ai didi

c++ - 将数组传递给 void 函数,并递归打印元素

转载 作者:太空宇宙 更新时间:2023-11-03 10:40:11 25 4
gpt4 key购买 nike

我正在自学编程。手头的任务是我必须通过一个不返回任何内容的函数(我假设是一个 void 函数)放置一个带有两个下标的数组,然后递归地打印每个元素。

#include <iostream>
#include <array>
#include <iomanip>
#include <string>
#include <cstddef>

using namespace std;

void printArray (int source, int a, int b){
if (a < b){
cout << source[a] << " ";
printArray(source, a + 1, b);
}
}

int main (){
const array<int, 10> theSource = {1, 2, 3, 4, 5, 6, 7, 8, 9};
int al = 0;
int bl = theSource.size();

printArray(theSource, al, bl);
}

当我尝试这样做时,出现了两个错误。

11|error: invalid types 'int[int]' for array subscript|
22|error: cannot convert 'const std::array<int, 10u>' to 'int' for argument '1' to 'void printArray(int, int, int)'|

所以我尝试将 void 更改为...

void printArray (int source[], int a, int b)

还有……

void printArray (int *source, int a, int b){

但是还是报错...

22|error: cannot convert 'const std::array<int, 10u>' to 'int' for argument '1' to 'void printArray(int, int, int)'|

有没有其他方法可以通过函数放置数组?

任务是...

(Print an array) Write a recursive function printArray that takes an array, a starting sub-script and an ending subscript as arguments, returns nothing and prints the array. The function should stop processing and return when the starting subscript equals the ending subscript.

最佳答案

将签名更改为:

void printArray (const array<int, 10> &source, int a, int b)

这就是编译器想要的! :)

关于c++ - 将数组传递给 void 函数,并递归打印元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41152026/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com