我被要求用c ++写一个彩票程序,不确定我是否正确使用功能请帮助
//function prototypes
int myNumbers();
void displayNums();
#include <stdio.h>
#define NUMS 6
#define WIN 7
// function myNumbers takes input from user
int myNumbers(int numbers[]) //implememt function
{
int i;
int numbers;
int input[NUMS];
printf ("Please enter your lucky numbers\n");
for (i=0;i<NUMS;i++)//loop through array to take input
{
scanf("%d",&input[i]);
}//end for loop
return (numbers);
}//end function myNumbers
答案 0 :(得分:1)
每个函数声明一个新数组,而不是使用作为参数传递给它的数组。
void displayNums(int print[])
{
int i;
int output;
int numbers[NUMS];
output = myNumbers(numbers);
printf("Your numbers are %d \n", output);
}
请注意,使用的print
参数无处可寻,而您正在使用int numbers[NUMS]
。删除该声明并使用print
。 (另请考虑将您的论点命名为print
之外的其他内容;此名称令人困惑,并且无法准确描述变量存储的内容。)
答案 1 :(得分:1)
您没有正确使用数组来传达数字,请参阅函数
int myNumbers(int userPick[]) //implememt function
{
int i;
int numbers;
int input[NUMS];
printf ("Please enter your lucky numbers\n");
for (i=0;i<NUMS;i++)//loop through array to take input
{
scanf("%d",&input[i]);
}//end for loop
numbers = *(input+i);
return (numbers);
}//end function myNumbers
它将数字读取到本地数组并返回*(input+i)
,这将是一个随机数,因为您的读取数组是从输入+ 0到输入+ i-1。你应该将数组或指针传递给全局数组。
即使在display()函数的情况下,你传递一个数组并在display()函数中使用其他一些数组
您应该使用公共数组来传达值。你可以在全局范围内创建一个数组,并在所有函数中使用它,或者在main()中创建一个数组,并将指针传递给其他函数,并在其他函数中使用相同的数组。学习how to pass arrays between functions and use arrays
答案 2 :(得分:0)
您的功能看起来很错误:
int myNumbers(int userPick[]) // 1. userPick is not used anywhere
{
int i;
int numbers; // 2. initialize this variable to 1 first
int input[NUMS];
printf ("Please enter your lucky numbers\n");
for (i=0;i<NUMS;i++)
{
scanf("%d",&input[i]);
}//end for loop
numbers = *(input+i); // 3. is this suppose to be inside the loop ?
return (numbers);
}//end function myNumbers
并在
void displayNums(int print[])//implement function
{
int i;
int output;
int numbers[NUMS];
output = myNumbers(numbers);
printf("Your numbers are %d \n",output);
}//end function displayNums
您不使用print
,而是创建新数组numbers
答案 3 :(得分:0)
您的大部分代码都是错误的。它不会编译。这是一些示例代码。使用它来实现其余的
#include <stdio.h>
#define NUMS 6
void displayNums(int nums[])
{
int i;
printf("Your numbers are:\n");
for(i = 0; i < NUMS; i++)
printf("%d ", nums[i]);
printf("\n");
}
void myNumbers(int nums[])
{
printf("Please Enter your lucky numbers\n");
int i;
for(i = 0; i < NUMS; i++)
scanf("%d", &nums[i]);
}
int main()
{
int numbers[6];
myNumbers(numbers);
displaynums(numbers);
//do the rest of the stuff here
return 0;
}
通过C教程可能会有所帮助?查看http://c.learncodethehardway.org/book/,了解该语言的简介。