ここにコードがあります。理解してもらえますか?2次元配列を理解する
今のところの私の理解/* Two dimensional array */
#include <stdio.h>
void main() {
int i, j, sum[2], mean[2];
int mark[3][2] = { { 34, 56}, { 48, 65}, { 53, 59} };
for (j = 0; j < 2; j++)
sum[j] = 0;
for (i = 0; i < 3; i++) {
for (j = 0; j < 2; j++) {
sum[j] = sum[j] + mark[i][j];
}
}
for (j = 0; j < 2; j++)
mean[j] = sum[j]/3;
printf("Average mark in Mathematics is %d\n", mean[0]);
printf("Average mark in Chemistry is %d\n", mean[1]);
}
....
i、jは、合計が[2]、[2]の整数として意味のデータ型を定義します。
配列....の初期化は、データ型intであり、配列は3行2列でなければなりません。
最初のforループ、jは0で初期化されます。条件:jは2より小さくなければなりません。update:jの値に1を加えます。 j = 0の和。
また、2番目のループでは、iは0で初期化されます。条件:iは3未満でなければなりません。更新:iの値に1を加算します。
forループと値jを使用する次の行と同様です。
私は少し構文が混乱しています: sum [j] = sum [j] + mark [i] [j];これは、jの合計を計算し、それを[i]と[j]と表示された配列に含まれるマークに追加します。
これが完了した後、同様のjループは以前のループとどのように相互作用するかわかりません。
平均計算値と画面に印刷された値。合計は、[1]も0
である理由
私が働い例を見てきました... 合計が[0] = 0との和[1] = 0、私は本当に理解していませんまず、I = 0及びj = 0、[0] =合計[0] +マーク[0,0]
次にJ = 1つの
和[1] =和
和[1 ] +マーク[0,1]
次に
I = 1、J = 0 和[0] =合計[0] +マークし、[1,0]
和[1] =和[1] +マーク[1 、1]
次にI = 2、J = 0
和[0] =合計[0] +マーク[2,0]
次いで
和[1] =合計[1] +マーク[2,1]
私は、ループがお互いにやりとりする方法と、iとjの値を混乱させる方法を少し混乱させています。
2d配列がテーブルにあることはわかっています(ここではフォーマットできないようです)。
誰かがこれを少し気にすることができれば分かりますか?
"ループはどうやって相互にやりとりされているのか、私は全面的にiとjの値を混同しています。"デバッガを使用してコードをステップ実行します。またはペンと紙。 – kaylum
良いデバッガは 'gdb'でしょう。 –
これは非常に基本的なプログラミング知識です... – norbertoonline