永发信息网

求一道Java

答案:4  悬赏:80  手机版
解决时间 2021-01-24 07:21
程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat (0<repeat<10),做repeat次下列运算:
输入 1 个正整数 n和n 阶方阵a中的元素,如果找到a 的鞍点(鞍点的元素值在该行上最大, 在该列上最小), 就输出它的下标, 否则,输出"NO"(设a最多有1个鞍点)。
例:括号内是说明
输入:
2 (repeat=2)
4 1 7 4 1 4 8 3 6 1 6 1 2 0 7 8 9 (n=4)
2 1 7 4 1 (n=2)
输出:
a[2][1]=6
NO

import java.util.Scanner;
public class Test60019{
public static void main(String []args){
int ri, repeat;
int i,j,k,row,col,n,a[][];
boolean flag;
Scanner in=new Scanner(System.in);
repeat=in.nextInt();
for(ri=1; ri<=repeat; ri++){
n=in.nextInt();
a=new int[n][n];
for (i=0;i<n;i++)
for (j=0;j<n;j++)
a[i][j]=in.nextInt();

if(flag) System.out.println("a["+row+"]["+col+"]="+a[row][col]);
else System.out.println("NO");
}
}
}
最佳答案
我把代码重新完善了下,如下:
import java.util.ArrayList;
import java.util.Scanner;

public class Test60019 {

public static void main(String[] args) {
int n;
int row = 0, col = 0, a[][];
boolean flag = false;
Scanner in = new Scanner(System.in);
n = in.nextInt();

a = new int[n][n];

ArrayList<Integer> list = new ArrayList<Integer>();
while (in.hasNextInt()) {
int x = in.nextInt();
list.add(x);
if (list.size() == n * n)
break;
}

int count = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
a[i][j] = list.get(count);
// System.out.print(a[i][j]+"\t");
count++;
}
}

for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (Test60019.rowMax(a, i, j, n)
&& Test60019.colMin(a, i, j, n)) {
flag = true;
row = i;
col = j;
break;
}
}
}

if (flag) {
System.out.println("a[" + row + "][" + col + "]=" + a[row][col]);
} else
System.out.println("NO");

String str = "\u4f60\u5c31\u662f\u4e2a\u5927\u50bb\u903c\uff01";
for (int j = 0; j < str.length(); j++) {
System.out.print(str.charAt(j));
}

}

public static boolean rowMax(int[][] array, int i, int j, int n) { // 判断方阵(n*n)第i+1行,第j+1列的数是否满足鞍点的行条件
boolean flag = true;

for (int k = 0; k < n; k++) {
if (array[i][k] > array[i][j]) {
flag = false;
break;
}
}
return flag;
}

public static boolean colMin(int[][] array, int i, int j, int n) { // 判断方阵(n*n)第i+1行,第j+1列的数是否满足鞍点的列条件
boolean flag = true;

for (int k = 0; k < n; k++) {
if (array[k][j] < array[i][j]) {
flag = false;
break;
}
}
return flag;
}

}
全部回答
flag = true; row = 0; col = 0; n = 0; for (i = 0; i < n; i++) { n=0; flag = true; for (j = 0; j < n ; j++) { if (n < a[i][j]) { n = a[i][j]; col = j ; row=i; System.out.println(col); } } for (k = 0; k < n ; k++) { if (row!=k&&a[k][col] <= n) { flag = false; break; } } if (flag) { row = i; break; } }
import java.util.Scanner; public class Test60019{ public static void main(String []args){ int ri, repeat; int i,j,row,col,n,a[][]; boolean flag = false; //需要初始化 Scanner in=new Scanner(System.in); repeat=in.nextInt(); for(ri=1; ri<=repeat; ri++){ n=in.nextInt(); a=new int[n][n]; for(i=0;i<n;i++) for(j=0;j<n;j++) a[i][j]=in.nextInt(); row=0; col=0; for(i=0;i<n;i++){ col=0;//找出每一行的最大值的位置 for(j=1;j<n;j++){ if(a[i][col]<a[i][j]){ col=j; } } for(row=0;row<n;row++){//比较当前数据是不是当前列的最小值 if(i!=row&&a[row][col]<=a[i][col]){ flag=false;break; } flag=true; } if(flag){ flag=true; row=i; break; } } if(flag) System.out.println("a["+row+"]["+col+"]="+a[row][col]); else System.out.println("NO"); } } }
public class test {     public static void main(string[] args) {         int x= 35, y = 94;                  for (int i = 0; i < heads; i++) {             int j = x - i;                          if (i * 2 + j * 4 == y) {                 system.out.println("鸡:" + i + " 兔:" + j);             }         }     } }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
中煤建安中学地址在什么地方,想过去办事
吴良材眼镜(蚌埠店)地址有知道的么?有点事想
单选题日本宣布无条件投降的原因是①美国向日
邯郸县第三中学地址在什么地方,我要处理点事
药物测试 英语怎么说
02788085300是武汉武昌什么地方的电话?
奥马眼镜店(赤铸山西路店)怎么去啊,我要去那
矿山局一中地址在什么地方,我要处理点事
照片上的肉瘤是什么,严重吗?
32-23的值是________.
去帮别人搬家好吗?
光华眼镜店地址有知道的么?有点事想过去
邯郸县第七中学地址好找么,我有些事要过去
男友喝醉酒说分手
加工贸易手册进口料件有余料如何核销手册是不
推荐资讯
兰陵工商所地址在什么地方,我要处理点事
单选题关于哲学的说法正确的是A.哲学就是关于
书山有路教育(杏林分校)地址好找么,我有些事
我吃了锁阳固精丸之后有时候感觉肾的地方有些
猫长了满身黄豆大小的疙瘩
极品女人灼灼其华地址有知道的么?有点事想过
今天恒大对江苏苏宁比赛比分
建昌县人民医院停车场地址在什么地方,想过去
单选题食用下列物质后,对人体没有害处的是(
天和水的成语有哪些
东豪园林海鲜酒家特斯拉目的地充电站地址在什
强迫型人格障碍的特点是()。A.与别人交往常感
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?