Java中怎么随机生成一个5*5的不重复的二维数组,元素的值为0到100之间的整数
2个回答
展开全部
需要自己写方法,追加5分吧楼主。。。
public class Main2 {
int [][]fun(int x){
int [][]l =new int[x][x];
int []n=new int[x*x];
int i,j;
for(i=0;i<x*x;i++){//取随机数
while(true){
n[i]=(int)(Math.random()*100);
for(j=0;j<i;j++){
if(n[j]==n[i])
break;
}
if(j==i)
break;
}
}
for(i=0;i<x;i++){
for(j=0;j<x;j++){
l[i][j]=n[5*i+j];
}
}
return l;
}
public static void main(String args[]){
Main2 main=new Main2();
int [][]k=main.fun(5);
//System.out.print(k.length);
for(int i=0;i<k.length;i++){
for(int j=0;j<k.length;j++){
System.out.print(k[i][j]+"\t");
}
System.out.println();
}
}
}
一次运行:
50 27 3 62 6
11 63 20 42 60
33 51 56 65 81
24 23 67 47 7
94 99 87 28 66
代码如上,你懂的,fun()可以得到x*x的值为0~100的2维数组,但态逗是你的x不要超过10,为什么你懂的,真心悉备觉得应该拿5分辛苦睁闭毁分
public class Main2 {
int [][]fun(int x){
int [][]l =new int[x][x];
int []n=new int[x*x];
int i,j;
for(i=0;i<x*x;i++){//取随机数
while(true){
n[i]=(int)(Math.random()*100);
for(j=0;j<i;j++){
if(n[j]==n[i])
break;
}
if(j==i)
break;
}
}
for(i=0;i<x;i++){
for(j=0;j<x;j++){
l[i][j]=n[5*i+j];
}
}
return l;
}
public static void main(String args[]){
Main2 main=new Main2();
int [][]k=main.fun(5);
//System.out.print(k.length);
for(int i=0;i<k.length;i++){
for(int j=0;j<k.length;j++){
System.out.print(k[i][j]+"\t");
}
System.out.println();
}
}
}
一次运行:
50 27 3 62 6
11 63 20 42 60
33 51 56 65 81
24 23 67 47 7
94 99 87 28 66
代码如上,你懂的,fun()可以得到x*x的值为0~100的2维数组,但态逗是你的x不要超过10,为什么你懂的,真心悉备觉得应该拿5分辛苦睁闭毁分
2011-08-13
展开全部
我的思路是先生成一个25的一维数组,然后拆分为二维数组
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询