我必须创建一个彩票游戏,其中你随机生成六个中奖号码,模拟彩票。让用户输入六个数字,看看他们是否中了彩票!
我已经做了很多,但现在我卡住了。我对java真的很陌生,所以请原谅我。当它提示要求另一个数字时,它会这样做,但它仍然显示它以显示自制的彩票选秀权。此外,当显示计算机制作的彩票选秀权的数字时,它们是重复的相同数字,而不是6个数字。计数器不太好用,可能有点小问题,但我无法弄清楚。谢谢你
package arraysIntroduction;
import java.util.Scanner;
public class sizeQuestion {
public static void main(String[] args) {
Scanner in = new Scanner (System.in);
int [] user =new int [6];
int i;
//Fill user array
System.err.println("Welcome to Miwand's Lottery");
System.out.println("Please enter your 6 desiered number to enter the lottery");
System.out.println("Pick from 1 to 49");
for ( i=0;i<user.length;i++) // gets numbers until it equals 6
{
System.out.println("Number:");
user[i]= in.nextInt(); // Gets numbers from user
while (user[i] < 0 ) // if its a negative number tell user to enter again
{
System.err.println("Negative number, please enter again:");
user[i]=in.nextInt();
}
if (user[i] > 49) // if the number goes past 49 prompt again
{
System.err.println("Please enter numbers from 1 - 49");
}
}
//print out the numbers generated
for ( i=0;i < user.length; i++){
System.out.print(+user[i]+ " ");
}
System.out.println(" ");
int[] lottery = new int[6];
int guesses;
int counter=0;
int j;
int x;
{
for (j = 0; j < 6; j++) {
int randomNum = (int) (Math.random() *49 +1); // Random number created here.
for ( x = 0; x < j; x++) {
if (lottery[x] == randomNum) // Here, code checks if same random number generated before.
{
randomNum = (int) (Math.random() *49 +1);// If random number is same, another number generated.
}
lottery[j] = randomNum;
}
}
//prints out computer generated numbers
for (i = 0; i < lottery.length; i++){
for (x = 0; x< j; x++){
System.out.print(lottery[i] + " ");
if (user[i] == lottery[x] ){
counter++;
}
}
}
}
if (counter < 2){
System.out.println("Try again!");
}
if (counter == 3){
System.out.println("3 numbers matched! You won $300!");
}
if (counter == 4){
System.out.println("4 numbers matched! You won 500!");
}
if (counter == 5){
System.out.println(" 5 numbers matched! You won $1000!");
}
else if (counter == 6){
System.out.println("JACCKKKPOOOOTTTTTTT!!!!!! YOU WIN 1 MILLION DOLLARS!");
}
}
}
正如我在注释中已经说过的,您应该将print语句从内循环移动到外循环。
您的代码应该如下所示:
for (i = 0; i < lottery.length; i++) { // outer loop
System.out.print(lottery[i] + " ");
for (x = 0; x < j; x++) { // inner loop
if (user[i] == lottery[x]) {
counter++;
}
}
}
我在你的程序中看到了很多问题。
首先,可以通过将打印语句从内循环移动到外循环来解决打印输出问题
for (i = 0; i < lottery.length; i++) {
System.out.print(lottery[i] + " ");
for (x = 0; x < j; x++) {
if (user[i] == lottery[x]) {
counter++;
}
}
}
此外,您没有正确分配第一个随机数,它总是使用默认值,即0
解决方案:
for (j = 0; j < 6; j++) {
int randomNum = (int) (Math.random() * 49 + 1); // Random number created here.
for (x = 0; x < j; x++) {
if (lottery[x] == randomNum) // Here, code checks if same random number generated before.
{
randomNum = (int) (Math.random() * 49 + 1);// If random number is same, another number generated.
}
}
lottery[j] = randomNum;
}
另外,您没有检查计数器是否等于2
解决方案:
if (counter <= 2) {
System.out.println("Try again!");
}
以及“如果随机数相同,则生成另一个数”中的逻辑可能不正确,因为它可能会再次生成相同的数字。你需要一个while循环来生成一个新的数字,直到它不等于任何生成的数字。
关于编码风格的另一点是,对于任何“for循环”
这是:
int i=0;
for (i = 0; i < length; i++)
应替换为:
for (int i = 0; i < length; i++)
我正在制作一个彩票程序,模拟一个人选择6个中奖号码,并使用多种方法抽奖中奖号码。 这是一个示例输出 我的问题是,查找匹配总数的方法不起作用,我不知道如何修复它。用户输入的数字和彩票随机数都是数组 这是我的代码:
所以我需要制作一个彩票游戏的程序。 我的代码支持4个游戏,6-42,MegaLotto(6-45),SuperLotto(6-49)和GrandLotto(6-55)它会询问要玩哪个游戏,6-42输入1等等。 游戏共有10名玩家,每个玩家的彩票中都有不重复的随机数字。(例如玩家1:1,2,3,4,5,6玩家2:2,3,4,5,6,7以此类推。) 有一个赢的组合(例如赢的组合:1,2,3,4,5,6
我的代码看起来很业余,因为我是一名软件工程专业的二年级学生。 我创建了一个彩票号码生成器,并注意到了奇怪但一致的结果。我的程序试图匹配之前的百万欧元抽奖彩票号码。我追踪尝试次数,也追踪匹配3、4、5和6个数字的次数。 尝试次数在100万到4.22亿之间。i、 e.我会运行程序10次,我会实现一个范围,我还会跟踪每次运行所需的时间长度。 我解释了一些事情,比如防止一个随机数被多次使用,这个检查是针对
问题内容: 我在活动A中有一个整数数组: 而且我想将该变量发送到活动B,所以我创建了一个新意图并使用putExtra方法: 在活动BI中获取信息: 但这不是真正发送数组,我只是在arrayB上获得了值“ 0”。我一直在寻找一些例子,但没有发现任何事。 问题答案: 你正在使用数组设置额外内容。然后,你尝试获取单个int。 你的代码应为:
我在尝试反转数组时遇到麻烦,它一直在打印这条消息,您可以帮助找出我做错了什么吗? 如果输入为: 则输出为:
我做了一个程序,要求我输入一个名字,这个名字应该在一个名为的数组中。看起来是这样的: 我在这里做错了什么?