ITP1_7_Cからです。
表計算を行う簡単なプログラムを作成します。
表の行数rと列数c、r × c の要素を持つ表を読み込んで、各行と列の合計を挿入した新しい表を出力するプログラムを作成して下さい。
Input
最初の行にrとcが空白区切りで与えられます。続くr行にそれぞれc個の整数が空白区切りで与えられます。
Output
(r+1) × (c+1) の新しい表を出力して下さい。各行の隣り合う整数は1つの空白で区切って下さい。各行の最後の列としてその行の合計値を、各列の最後の行としてその列の合計値を、最後の行・列に表全体の合計値を挿入して下さい。
solutionのコードを見たところ以下のようになっていたのですが、
# 上から下に合計 for j in range(c): for i in range(r): a[r][j] += a[i][j] print(a[r][j])
↑のコードでaの要素を上から下の合計しているのはわかるのですが、
a[4]
の [8, 9, 9, 13, 17]
がどうやってaに追加されたのかが分かりません。
a[4][0] = 8,a[4][1] = 9,a[4][2] = 9,a[4][3] = 13,a[4][4] = 17
と0が上書きされていくとしたら、
なぜa[0][0] = 1,a[0][1] = 3,a[0][2] = 6,a[0][3] = 8,a[0][4] = 8
のようにaの他の要素も上書きされないのでしょうか?
code
1r, c = map(int, input().split()) 2a = [[0] * c for i in range(r + 1)] 3# create a 4for i in range(r): 5 a[i] = list(map(int, input().split())) 6# 上から下に合計 7for j in range(c): 8 for i in range(r): 9 a[r][j] += a[i][j] 10 print(a[r][j]) 11 12# 左から右に合計していく 13for i in range(r + 1): 14 m = 0 15 for j in range(c): 16 m += a[i][j] 17 print(a[i][j], end=" ") 18 print(m) 19
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/05 05:47