马鞍数 【二维数组】

eviljordan 2012-11-07 01:17:29
求一个nXn数阵中的马鞍数,输出这的位置。所谓马鞍数,是指在行上最小而在列上最大的数。如下:(n=5)

5 6 7 8 9

4 5 6 7 8

3 4 5 2 1

2 3 4 9 0

1 2 5 4 8

则1行1列上的数就是马鞍数。

输入

Input

第一行,一个数N

接下来N行,每行N个数

输出

Output

输出马鞍数所在的行列

样例输入
5
5 6 7 8 9
4 5 6 7 8
3 4 5 2 1
2 3 4 9 0
1 2 5 4 8
样例输出
1 1
我的代码:应该怎样填补才正确啊
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner rd=new Scanner(System.in);
int n=rd.nextInt();
int arr[][]=new int[n][n];
int max=arr[0][0];
int min=arr[0][0];
int weizhi = 0;
for(int i=0;i<arr.length;i++)
{
for(int j=0;j<arr[i].length;j++)
{
arr[i][j]=rd.nextInt();
}
}
for(int i=1;i<arr.length;i++)
{
if(arr[0][i]<min)
{
min=arr[0][i];
System.out.print(min);
}
if(arr[i][0]>max)
{

}

}
System.out.print(max+" "+min);
}
...全文
1115 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
流动的树 2014-03-10
  • 打赏
  • 举报
回复
using System; namespace testConsole { class Program { static void Main(string[] args) { //5 6 7 8 9 //4 5 6 7 8 //3 4 5 2 1 //2 3 4 9 0 //1 2 5 4 8 int[,] array = new int[5, 5] { { 5, 6, 7, 8, 9 }, { 4, 5, 6, 7, 8 }, { 3, 4, 5, 2, 1 }, { 2, 3, 4, 9, 0 }, { 1, 2, 5, 4, 8 } }; bool blTag = true; for (int i = 0; i < 5; i++) { for (int j = 0; j < 5; j++) { blTag = true; for (int n = 0; n < 5; n++) { if (array[i, j] > array[i, n]) { break; } if (array[i, j] < array[n, j]) { break; } } if (blTag) { Console.WriteLine("{0}行,{1}列", i + 1, j + 1); } } } } } }
yh0123123 2012-11-09
  • 打赏
  • 举报
回复
第二个数组该是[][].. 具体的找每组的最大最小应该不难写,就是循环比较就行,只是记录可能稍微麻烦一点,自己实践下。
yh0123123 2012-11-09
  • 打赏
  • 举报
回复
这个直接点的方法就找每行的最小,再判断它在该列是否是最大就可以啊。 比如你上面给出的数据,用一个二维数组记录每行最小的数的坐标。 int row_min[][]={{0,0},{1,0},{2,4},{3,4},{4,0}}; 再用一个数组记录每列最大的数的坐标 int col_max[]={{0,0},{0,1},{0,2},{3,3},{0,4}}; 在弄一个循环依次比较这2个数组的每队坐标。遇到相等就输出,因为相等即表示又是行最小又是列最大。

58,453

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧