[英]Trouble returning an array value
我不斷收到錯誤代碼,說jeb
已經重新定義了自己,並且將int更改為float
或double
無效。 這本來是一個隨機數生成器,但我的數組混亂了。
#include "stdafx.h"
#include <iostream>
#include <random>
using std::cout;
using std::endl;
using std::cin;
int generate();
int numb();
int main()
{
int num = numb();
cout << num << endl;
cout << endl;
int gen = generate();
cout << gen << endl;
cout << endl;
system("Pause");
return 0;
}
int generate(float *jeb[])
{
int jeb [20] = {};
for (int i = 0; i < 20; i++) {
int rng = rand() % numb() + 1;
jeb[i] = rng;
return jeb;
}
}
int numb()
{
int choice;
cout << "Enter maximum number: ";
cin >> choice;
return choice;
}
這里有幾個問題:
int generate(int *jeb[])
{
int jeb [20] = {};
//...
}
現在您有兩件事叫jeb
。 假設您只想要一個。 您可以發送一個指針並填充它
int generate(int *jeb)
{
//.. fill it up in a for loop
}
但是這說它返回一個整數...
代替使用指針,請嘗試使用數組-您似乎事先知道您有20個元素:
#include <array>
std::array<int, 20> generate()
{
std::array<int, 20> jeb;
for (int i = 0; i < 20; i++) {
int rng = rand() % numb() + 1;
jeb[i] = rng;
return jeb; //Really, wait - we haven't done the whole loop yet
}
}
現在另一個問題可能很明顯:您正在for循環的中間返回。 等到完成生成所需的內容為止。
std::array<int, 20> generate()
{
std::array<int, 20> jeb;
for (int i = 0; i < 20; i++) {
int rng = rand() % numb() + 1;
jeb[i] = rng;
}
return jeb; // loop now done
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.