我有这个问题,到目前为止我能够创建一个方法来对一行中的整数值求和并将其与另一行的总和进行比较,但我不知道如何交换行。有什么帮助吗?
问题是:
编写一个给定二维数组的Java程序,重新排序行,使得行总和最高的行是第一行。
如果使用以下数组调用程序:
1 3 5 9
2 100
2 2 3
然后输出应该是:
2 100
1 3 5 9
2 2 3
应执行以下步骤:
public static void main(String[] args)
{
int [][] a = {{1,3,5,9},{2,100},{2,2,3}};
int max = sum(0,a);
int index = 0;
for (int i = 1; i < a.length; i++)
{
if( max < sum(i,a) )
{
max = sum (i,a);
index = i;
}
}
}
public static int sum(int y, int[][]x)
{
int sum = 0;
for(int j = 0; j<x[y].length; j++)
sum+= x[y][j];
return sum;
}
答案 0 :(得分:0)
请原谅我的傲慢,我从来没有用Java写过,我不能尝试 - 避免使用工具,但我想,代码看起来应该是这样的
public static void main(String[] args)
{
int [][] a = {{1,3,5,9},{2,100},{2,2,3}};
int max = sum(a[0]);
int index = 0;
for (int i = 1; i < a.length; i++)
{
int t = sum(a[i]);
if( max < t )
{
max = t;
index = i;
}
}
if (index != 0) {
int tmp[] = a[0];
a[0] = a[index];
a[index] = tmp;
}
}
public static int sum(int[]x)
{
int sum = 0;
for(int j = 0; j<x.length; j++)
sum+= x[j];
return sum;
}