[英]How to? - Lottery Simulation (C)
i have written a C program that will simulate lottery draws of the course of X amount of years that were inputted by the user, once the the amount of years have been inputted it will simulate a lottery draw each week for however many years.我编写了一个 C 程序,该程序将模拟用户输入的 X 年数的过程中的彩票抽奖,一旦输入了年数,它将模拟每周一次的彩票抽奖多年。 the program also need to print out if the pre inputted numbers ( already in the code) match, and also to print out how many times the numbers matched eg程序还需要打印出预先输入的数字(已经在代码中)是否匹配,并打印出数字匹配的次数,例如
This is the code that i have so far, everything compiled and runs fine:这是我到目前为止的代码,一切都编译并运行良好:
#include <stdio.h>
int main(int argc, char const *argv[])
{
//Welcome the User to the Program
puts("============================");
puts(" WELCOME TO ");
puts("============================");
puts(" PROJECT : JACKPOT DREAMS ");
puts("============================");
//Rogers 6 Original Numbers
int nums[6] = { 5, 11, 15, 33, 42, 43 };
//Ask how many years to simulate
int years = 0;
printf("How many years would you like to sleep for? :\n");
scanf("%d", &years);
printf("Ok. I will now play the lottery %d year(s)\n",years);
printf("Sleep Tight :)....\n");
//Generate Random Numbers
int ctr;
int randnums[6];
srand(time(NULL));
while (years-- > 0) {
for( ctr = 0; ctr < 6; ctr++ ) randnums[ctr] = (rand() % 50);
//Check Numbers with Rogerns numbers
int win = 1;
for( ctr = 0; ctr < 6; ctr++ )
{
if(randnums[ctr] != nums[ctr])
{
win = 0;
break; // if there's a mismatch we don't need to continue
}
}
return 0;
}
}
does anyone know how i would do this?有谁知道我会怎么做?
Firstly it seems that you return
after looping through the first year.首先,您似乎在循环第一年之后return
。 You should move the return
statement outside the braces.您应该将return
语句移到大括号外。 Secondly as some comments mentioned, you should write blocks more carefully, and make correct indents.其次,正如一些评论所提到的,您应该更仔细地编写块,并进行正确的缩进。
Below I have rewritten your program, to print out if some numbers match for a given year.下面我重写了你的程序,如果某些数字与给定的年份匹配,则打印出来。 If all numbers match, "Winner!"如果所有数字都匹配,“赢家!” is also printed.也印刷。 To do this I have added a few variables and print
statements.为此,我添加了一些变量和print
语句。
Hope this helps.希望这可以帮助。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int
main(int argc, char const *argv[])
{
//Welcome the User to the Program
puts("============================");
puts(" WELCOME TO ");
puts("============================");
puts(" PROJECT : JACKPOT DREAMS ");
puts("============================");
//Rogers 6 Original Numbers
int nums[6] = { 5, 11, 15, 33, 42, 43 };
//Ask how many years to simulate
int years = 0;
printf("How many years would you like to sleep for? :\n");
scanf("%d", &years);
printf("Ok. I will now play the lottery %d year(s)\n",years);
printf("Sleep Tight :)....\n");
//Generate Random Numbers
int numberOfWins = 0;
int ctr;
int randnums[6];
srand(time(NULL));
int currYear = 0;
while (years-- > 0)
{
currYear++;
for( ctr = 0; ctr < 6; ctr++ ) randnums[ctr] = (rand() % 50);
//Check Numbers with Rogerns numbers
int win = 1, matched = 0;
for( ctr = 0; ctr < 6; ctr++ )
{
if(randnums[ctr] != nums[ctr])
{
win = 0;
} else {
matched++;
}
}
numberOfWins += win;
//If any numbers matched or win, print it.
if (matched > 0) printf("In year: %d, %d number(s) matched\n", currYear, matched);
if (win) printf("Winner!\n");
}
printf("You won %d time(s)\n", numberOfWins);
return 0;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.