
一道java 编程练习题,谁帮帮忙啊?
用随机数对象产生0---1000范围内的不同整数,用以初始化一个M*N的二维数组(M*N<100),然后编程找出二维数组中的最大数和最小数,并将其交换位置。要求输出原始二...
用随机数对象产生0---1000范围内的不同整数,用以初始化一个M*N的二维数组(M*N<100),然后编程找出二维数组中的最大数和最小数,并将其交换位置。要求输出原始二维数组及交换后的二维数组。
展开
1个回答
展开全部
public static void main(String[] args) {
int rand = 1000; //随机数最大值
int[][] array = new int[10][10]; //长度为10*10的二维数组
Set<Integer> set = new HashSet<Integer>();
while(true){
if(set.size()==100)
break;
set.add((int)(Math.random()*rand));
}
Object[] num = set.toArray();
for (int i = 0; i < num.length; i++) {
array[i/10][i%10] = (Integer) num[i];
}
System.out.println("原数组为:");
print(array);
int min=rand,max=0;
int minX=0,minY=0,maxX=0,maxY=0;
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
if(array[j][i]<min){
min = array[j][i];
minX=j;
minY=i;
}
if(array[j][i]>max){
max = array[j][i];
maxX=j;
maxY=i;
}
}
}
int temp = array[minX][minY];
array[minX][minY]=array[maxX][maxY];
array[maxX][maxY]=temp;
System.out.println("改变最小值最大值后的数组为:");
print(array);
}
public static void print(int[][] array) {
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
System.out.print(array[j][i]+"\t");
}
System.out.println();
}
}
int rand = 1000; //随机数最大值
int[][] array = new int[10][10]; //长度为10*10的二维数组
Set<Integer> set = new HashSet<Integer>();
while(true){
if(set.size()==100)
break;
set.add((int)(Math.random()*rand));
}
Object[] num = set.toArray();
for (int i = 0; i < num.length; i++) {
array[i/10][i%10] = (Integer) num[i];
}
System.out.println("原数组为:");
print(array);
int min=rand,max=0;
int minX=0,minY=0,maxX=0,maxY=0;
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
if(array[j][i]<min){
min = array[j][i];
minX=j;
minY=i;
}
if(array[j][i]>max){
max = array[j][i];
maxX=j;
maxY=i;
}
}
}
int temp = array[minX][minY];
array[minX][minY]=array[maxX][maxY];
array[maxX][maxY]=temp;
System.out.println("改变最小值最大值后的数组为:");
print(array);
}
public static void print(int[][] array) {
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
System.out.print(array[j][i]+"\t");
}
System.out.println();
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询