您的位置:首页 > 其它

练习题目

2011-11-29 10:10 225 查看
3. 写一个彩票程序:30选7。随机(1~30之间)生成7个随机数,注意不能重复。然后从键盘输入7个数,对比7个数是否与随机数有相同的。最后显示“中了几个号”。同时,如果中了7个号,显示一等奖;如果中了6个号,显示二等奖;如果中了5个号,显示三等奖。要求:首先写出程序的实现思想,特别是程序所使用的数据结构,然后写出Java实现代码。【说明:键盘输入可以使用Scanner类】

View Code

import java.util.Scanner;
import java.util.Random;
import java.util.Arrays;
public class LotteryTest
{
public static void main(String[] args)
{
Scanner sc=null;
int[] intArr=new int[7];
int index=0;
int n=0;
for(int i=0;i<7;i++)
{
sc=new Scanner(System.in);
System.out.println("请输入1~30之间的整数,按回车提交!");
if(sc.hasNextInt())
{
int t=sc.nextInt();
if(t>0&&t<=30)
{
intArr[index++]=t;
}
else
{
System.out.println("输入错误,请重新输入!");
i--;
}
}
else
{
System.out.println("输入错误,请重新输入!");
i--;
}
}
int[] destArr=getRandom();
System.out.println(Arrays.toString(destArr));
for(int i=0;i<destArr.length;i++)
{
for(int j=0;j<intArr.length;j++)
{
if(destArr[i]==intArr[j])
{
n++;
}
}
}
switch(n)
{
case 7:
System.out.println("恭喜您中了一等奖!");
break;
case 6:
System.out.println("恭喜您中了二等奖!");
break;
case 5:
System.out.println("恭喜您中了三等奖!");
break;
default:
System.out.println("您没有中奖");
break;
}

}
public static int[] getRandom()
{
Random  rd=new Random();
int[] temp=new int[7];
int randInt=0;
boolean flag=false;
int count=0;
while(count<7)
{
randInt=rd.nextInt(31);
for(int i=0;i<count;i++)
{
if(temp[i]==randInt)
{
flag=true;
break;
}
else
{
flag=false;
}
}
if(!flag&&randInt!=0)
{
temp[count++]=randInt;
}
}
return temp;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: