C ++-将数组返回主函数并将数组传递给另一个函数

公羊24

我在将数组从函数返回到主函数时遇到麻烦。该数组还用作另一个函数的参数。

#include <iostream>
#include <algorithm>
#include <cmath>
#include <cstdlib>
using namespace std;

void ran(int list[]);
void guess(int list[]);
int black_marker(int num1[], int num2[]);

int main(){
    int r[4];
    int g[4];
    cout << black_marker(ran(r), guess(g));
}

void ran(int list[]){       //random number generator
    srand (time(NULL));
    int a = rand() % 6 + 1;
    int b = rand() % 7 + 1;
    while(a == b)
        b = rand() % 7 + 1;
    int c = rand() % 8 + 1;
    while(a == c || b == c)
        c = rand() % 8 + 1;
    int d = rand() % 9 + 1;
    while(a == d || b == d || c == d)
        d = rand() % 9 + 1;

    int num_random[4] = {a, b, c, d};
}

void guess(int list[]){         //takes user input for a guess
    int random_no[4];
    for(int i = 0; i < 4; i++){
        cin >> random_no[i];
    }
}

int black_marker(int num1[], int num2[]){   //Counts how many digits from random number
    int black_count = 0;                    //is similar to the user's guess
    for(int i = 0; i < 4; i++){
        if(num1[i] == num2[i]){
            black_count += 1;
        }
    }
    return black_count;
}

基本上,这是一个不完整的猜数字游戏,在该游戏中,会为用户提供提示,例如随机生成的数字和用户输入的猜测所共有的数字位数。我收到一个cout << black_marker(ran(r), guess(g));不常见的void类型错误,因为当我在void函数的主体中有cout语句时,此按引用传递方法会起作用。

亚历杭德罗·迪亚兹(Alejandro Diaz)

black_marker(ran(r), guess(g)) black_marker有两个数组,但ran()guess(g)返回void,所以你结了black_marker(void, void),并且将无法正常工作。

你想做的是

#include <cmath>
#include <iostream>

using namespace std;

void ran(int list[]){       //random number generator
    srand (time(NULL));
    int a = rand() % 6 + 1;
    int b = rand() % 7 + 1;
    while(a == b)
        b = rand() % 7 + 1;
    int c = rand() % 8 + 1;
    while(a == c || b == c)
        c = rand() % 8 + 1;
    int d = rand() % 9 + 1;
    while(a == d || b == d || c == d)
        d = rand() % 9 + 1;

    list[0] = a;
    list[1] = b;
    list[2] = c;
    list[3] = d;
}

void guess(int list[]){         //takes user input for a guess
    int random_no[4];
    for(int i = 0; i < 4; i++){
        cin >> list[i];
    }
}
int black_marker(int num1[], int num2[]){   //Counts how many digits from random number
    int black_count = 0;                    //is similar to the user's guess
    for(int i = 0; i < 4; i++){
        if(num1[i] == num2[i]){
            black_count += 1;
        }
    }
    return black_count;
}
int main(){
    int r[4];
    int g[4];
    ran(r);
    guess(g);
    cout << black_marker(r, g) << endl;
}

但是,您应该删除C样式的数组,并使用std::vectorstd::array代替。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将字符串数组传递给 C 中的另一个函数

来自分类Dev

如何将char数组的值传递给C中另一个文件中的函数?

来自分类Dev

在C中将2D int数组从一个函数传递给另一个函数

来自分类Dev

如何在C中将数组索引传递给另一个函数

来自分类Dev

将匿名函数作为唯一参数传递给另一个函数(C ++)

来自分类Dev

将具有不同数量参数的函数传递给另一个函数C ++

来自分类Dev

C ++:如何将指针传递给另一个类的成员函数?

来自分类Dev

C ++使用移动语义将参数传递给另一个函数

来自分类Dev

C ++试图将类传递给另一个类的构造函数

来自分类Dev

c尝试将时间和日期传递给另一个函数

来自分类Dev

C ++将函数参数传递给另一个lambda

来自分类Dev

C ++:如何将一个对象传递给另一个对象构造函数?

来自分类Dev

C-将参数未知的函数传递给另一个函数,然后调用它

来自分类Dev

如何将函数和参数的变量列表传递给C中的另一个函数?

来自分类Dev

将C样式的整数数组传递给Ada函数以检索数组中的第一个元素

来自分类Dev

C一个返回数组的函数

来自分类Dev

C ++线程:如何使用lambda函数将主线程中的参数传递给另一个线程

来自分类Dev

将值从一个函数传递到另一个C ++

来自分类Dev

C ++将成员函数传递给另一个类

来自分类Dev

C ++如何将成员函数指针传递给另一个类?

来自分类Dev

如何从一个函数返回整数的3D数组以在C中的另一个函数中使用?

来自分类Dev

C# - 我似乎无法将数组传递给不同的方法,一个用于初始化,另一个用于修改?

来自分类Dev

C ++直接将数组传递给函数

来自分类Dev

将数组传递给C中的函数

来自分类Dev

将C数组传递给Rust函数

来自分类Dev

将char数组传递给函数C ++

来自分类Dev

C ++将指针数组传递给函数

来自分类Dev

将数组传递给类函数C ++

来自分类Dev

在C中如何将局部函数变量值传递给另一个函数并打印值而不会出现错误

Related 相关文章

  1. 1

    如何将字符串数组传递给 C 中的另一个函数

  2. 2

    如何将char数组的值传递给C中另一个文件中的函数?

  3. 3

    在C中将2D int数组从一个函数传递给另一个函数

  4. 4

    如何在C中将数组索引传递给另一个函数

  5. 5

    将匿名函数作为唯一参数传递给另一个函数(C ++)

  6. 6

    将具有不同数量参数的函数传递给另一个函数C ++

  7. 7

    C ++:如何将指针传递给另一个类的成员函数?

  8. 8

    C ++使用移动语义将参数传递给另一个函数

  9. 9

    C ++试图将类传递给另一个类的构造函数

  10. 10

    c尝试将时间和日期传递给另一个函数

  11. 11

    C ++将函数参数传递给另一个lambda

  12. 12

    C ++:如何将一个对象传递给另一个对象构造函数?

  13. 13

    C-将参数未知的函数传递给另一个函数,然后调用它

  14. 14

    如何将函数和参数的变量列表传递给C中的另一个函数?

  15. 15

    将C样式的整数数组传递给Ada函数以检索数组中的第一个元素

  16. 16

    C一个返回数组的函数

  17. 17

    C ++线程:如何使用lambda函数将主线程中的参数传递给另一个线程

  18. 18

    将值从一个函数传递到另一个C ++

  19. 19

    C ++将成员函数传递给另一个类

  20. 20

    C ++如何将成员函数指针传递给另一个类?

  21. 21

    如何从一个函数返回整数的3D数组以在C中的另一个函数中使用?

  22. 22

    C# - 我似乎无法将数组传递给不同的方法,一个用于初始化,另一个用于修改?

  23. 23

    C ++直接将数组传递给函数

  24. 24

    将数组传递给C中的函数

  25. 25

    将C数组传递给Rust函数

  26. 26

    将char数组传递给函数C ++

  27. 27

    C ++将指针数组传递给函数

  28. 28

    将数组传递给类函数C ++

  29. 29

    在C中如何将局部函数变量值传递给另一个函数并打印值而不会出现错误

热门标签

归档