この2次元配列の州ごとの投票の合計と候補ごとの合計を加算するとします。
要件は次のとおりです。
- 州ごとの総投票数が表示されるようにプログラムを変更します
(つまり、州ごとのすべての候補者の総投票数を合計する列を各行に追加します) 候補者ごとの合計投票数が表示されるようにプログラムを変更します(つまり、3列の投票すべてについて受け取った合計投票数を示す最後の行を追加します)
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", Totalbystate) ; System.out.println(); }