/*
* 小生:烟大洋仔
* 程序要求:
* 大家都玩过“宾果”游戏吧,我们今天要编写一个程序实现产生1--25之间的随机数来生成数组,即一个小小的宾果游戏
* 问题分析与程序设计:
* (1)问题一:不知道什么时候数组填满。所以在写的过程中要进行判断才行,在这里我用了while循环来进行判断
* (2)问题二:产生数组数值在放入数组之前要进行判断,到底此数值重复没有??没有重复的话才能放入数组中,代码如下:
* for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{//判断是否重复了
if (table[i][j]==x)
{
bk=2;
break;
}
else
{
if(table[i][j]==0)
{
table[i][j]=x;
bk=2;
break;
}
}
}
if(bk==2)break;
}
(3)将随机数控制在1--25之间:x=(int)(Math.random()*25)+1;//用x来接受随机数
(4)最后填满数组后判断数组是不是已经填满了:
int sum=0;
for(i=0;i<5;i++)
{
for (j=0;j<5;j++)
{
if(table[i][j]!=0)
sum=sum+1;
}
}
if (sum==25) e=1;
* */
public class Day0925_Array
{
public static void main(String args[])
{
String str =new String();
int table[][]=new int[5][5];//定义一个五行五列的数组
int i,j,e=0,x,bk;
System.out.println("显示初始数据为:");
for(i=0;i<5;i++)
{
str="";
for (j=0;j<5;j++)
{
str=str+" "+table[i][j];//该句在之前的系列文章中多次用到,读者应该有所了解啦
}
System.out.println(str);//输出数组数据默认为全是0
}
while(e==0)
{
x=(int)(Math.random()*25)+1;//用x来接受随机数
bk=1;
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{//判断是否重复了
if (table[i][j]==x)
{
bk=2;
break;
}
else
{
if(table[i][j]==0)
{
table[i][j]=x;
bk=2;
break;
}
}
}
if(bk==2)break;//如果满足条件控制程序for循环跳出来
}
int sum=0;
for(i=0;i<5;i++)
{
for (j=0;j<5;j++)
{
if(table[i][j]!=0)
sum=sum+1;//统计数组中不是0的数的个数
}
}
if (sum==25) e=1;//如果数据个数为25个则令e=1;那么此时while循环将会终止
}
System.out.println("显示随即变化后的数据为:");
for(i=0;i<5;i++)
{
str="";
for (j=0;j<5;j++)
{
str=str+" "+table[i][j];
}
System.out.println(str);//输出数组数据
}
}
}