任务
设计一个生成7位数彩票的程序。该程序 应该有一个包含7个元素的INTEGER数组。写一个循环步骤 通过数组,随机生成0到9范围内的数字 为每个元素。然后写另一个循环显示的内容 阵列。
这是我的代码
#include <iostream>
#include <cstdlib>
#include <array>
using namespace std;
// Global Constants
const int ARRAY_SIZE = 7;
// Declare Functions
int genNumber();
void displayResults(int lottoArray[], int ARRAY_SIZE);
// Module -- Main
int main(){
// Declare Variables
int LottoArray;
// Set Functions
LottoArray = genNumber();
// Call Display Function
displayResults(LottoArray, ARRAY_SIZE);
system("pause");
return 0;
}
// Module -- Generate Numbers
int genNumber(){
// Declare Variables for Array
int lottoArray[ARRAY_SIZE];
int i = 0;
// Generate a Number for Each Array Placeholder
for (i = 0; i < ARRAY_SIZE; i++){
// Generate Random Number in Array
lottoArray[i] = rand() % 10;
int checkNumber = lottoArray[i];
// Check for multiples
for (int i : lottoArray){
while (i == checkNumber){
checkNumber = rand() % 10;
}
}
}
return lottoArray[ARRAY_SIZE];
}
// Module -- Display Results
void displayResults(int lottoArray[], int ARRAY_SIZE){
// Declare Variables
int i = 0;
cout << "Lotto Numbers: ";
// Display Each Value in the Array
for (i = 0; i < ARRAY_SIZE; i++){
cout << lottoArray[i] << " ";
}
cout << endl;
}
我在代码的这部分标题上得到了错误
// Call Display Function
displayResults(LottoArray, ARRAY_SIZE);
我理解问题是我没有返回单个int,我返回多个。我该如何解决这个问题?我的程序必须是完全模块化的,主函数只能用于调用其他函数。
答案 0 :(得分:1)
有几个问题。
genNumber
需要返回int *
而不是int
,LottoArray
中的main
也需要定义为int *
一旦修复,您就会遇到genNumber
返回本地定义的数组的问题。函数返回后,该数据将变为未定义。
由于你知道数组的开头有多大,你可能最好将LottoArray
(及其大小)传递给genNumber
并直接写入,并更改返回输入void
。
所以你现在有以下内容:
#include <iostream>
#include <cstdlib>
#include <array>
using namespace std;
// Global Constants
const int ARRAY_SIZE = 7;
// Declare Functions
void genNumber(int lottoArray[], int size);
void displayResults(int lottoArray[], int size); // don't mask global variables
// Module -- Main
int main(){
// Declare Variables
int LottoArray[ARRAY_SIZE]; // define an array here
// Set Functions
genNumber(LottoArray, ARRAY_SIZE);
// Call Display Function
displayResults(LottoArray, ARRAY_SIZE);
system("pause");
return 0;
}
// Module -- Generate Numbers
void genNumber(int lottoArray[], int size){
// Declare Variables for Array
int i = 0;
// Generate a Number for Each Array Placeholder
for (i = 0; i < size; i++){
// Generate Random Number in Array
lottoArray[i] = rand() % 10;
int checkNumber = lottoArray[i];
// Check for multiples
for (int i : lottoArray){
while (i == checkNumber){
checkNumber = rand() % 10;
}
}
}
}
// Module -- Display Results
void displayResults(int lottoArray[], int size){
// Declare Variables
int i = 0;
cout << "Lotto Numbers: ";
// Display Each Value in the Array
for (i = 0; i < size; i++){
cout << lottoArray[i] << " ";
}
cout << endl;
}