gpt4 book ai didi

java - 如何使用格式化程序格式化二维数组之和?

转载 作者:行者123 更新时间:2023-12-01 15:07:19 25 4
gpt4 key购买 nike

我必须将 2008 年选举中每个州的选票添加到二维数组中,但是当我运行代码时,它只对第一行求和,然后不断将自己添加到前面的总和中,像这样在右侧 51 次:

  • 各州 奥巴马 麦凯恩 其他总计(按州)
  • 阿拉巴马州 813479 1266546 19794 2099819 2426016 72985 等...
  • 阿拉斯加 123594 193841 8762 2099819 2426016 72985 等...

但我只需每行添加一次每个州的总票数。

public static void main(String[] args) throws IOException  
{
// TODO code application logic here
File election = new File("voting_2008.txt");
Scanner sc = new Scanner(election);

String[] states = new String[51];
int[][]votes = new int[51][4];
int[] Totalbystate = new int[votes.length];

for (int s=0; s < 51; s++)
{
states[s] = sc.nextLine();
}

for(int c=0; c < 3; c++)
{
for(int s=0; s < 51; s++)
{
votes[s][c] = sc.nextInt();
}
}

Formatter fmt = new Formatter();
fmt.format("%20s%12s%12s%12s%21s", "State", "Obama", "McCain", "Other", "Total by state");
System.out.println(fmt);
for (int s=0; s < 51; s++)
{
fmt = new Formatter();
fmt.format("%20s", states[s]);
System.out.print(fmt);
for(int c=0; c < 3; c++)
{
fmt = new Formatter();
fmt.format("%12d", votes[s][c]);
System.out.print(fmt);
}
int sum =0;
for(int row=0; row < votes.length; row++)
{
for (int col=0; col < votes[row].length; col++)
{
sum = sum + votes[row][col];
}
fmt = new Formatter();
fmt.format("%21d", sum);
System.out.print(fmt);
}

System.out.println();
}
}

最佳答案

but when I run the code it sums only the first row and then keeps adding itself to the previous sum 51 times to the right side like this:

看看你的代码:

int sum =0;
for(int row=0; row < votes.length; row++)
{
for (int col=0; col < votes[row].length; col++)
{
sum = sum + votes[row][col];
}
fmt = new Formatter();
fmt.format("%21d", sum);
System.out.print(fmt);
}

看看您将 sum 设置为 0 的位置。现在考虑一下您应该将其设置为 0 的位置...

关于java - 如何使用格式化程序格式化二维数组之和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12804420/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com