質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

919閲覧

ITP1_7_C: for文のアルゴリズムの挙動

esklia

総合スコア81

アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2020/04/04 09:50

編集2020/04/14 15:41

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

なぜa[0][0] = 1,a[0][1] = 3,a[0][2] = 6,a[0][3] = 8,a[0][4] = 8

のようにaの他の要素も上書きされないのでしょうか?

a[r][j] += a[i][j]

r4固定なので

a[4][j] += a[i][j]

ですよ

投稿2020/04/04 16:37

SHOMI

総合スコア4079

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

esklia

2020/04/05 05:47

ご回答くださりありがとうございます。うっかりしてました…。教えていただきありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問