我在從一個函數返回一個數組到主函數時遇到了問題。該數組也被用作另一個函數的參數。C++ - 返回一個數組到主函數並將數組傳遞給另一個函數
#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;
}
基本上,這是一個不完整的猜數遊戲,其中向用戶給出一個提示如所共有的所述隨機產生的數以及所述用戶輸入的猜測的位數。我得到一個void類型的錯誤cout << black_marker(ran(r), guess(g));
這是不尋常的,因爲這個傳遞引用方法的工作原理,否則,當我在void函數的主體中有一個cout語句。
歡迎C++和所有內置作爲其標準庫的一部分,好的容器。使用'std :: vector'。並閱讀*通過常量引用*。 –
Bathsheba
2015-03-31 14:50:38
black_marker作爲第一個參數數組,但你提供了一個void函數void ran(r) – 2015-03-31 14:52:52