私は CS の新入生で、2 次元配列を理解するのに苦労しています。現在、一度に1行ずつ印刷しようとしています。
これは私のコードです
#include <stdio.h>
#define N 3
int main(void)
{
int array[N][N], i, j, rows[N], cols[N];
for(i=0;i<N;i++)
{
printf("Enter row %d: ", i+1);
for(j=0;j<N;j++)
scanf("%d", &array[i][j]);
}
printf("The 5 rows you entered are: \n");
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
printf("%d", array[i][j]);
printf("\n");
}
}
printf("\n");
return 0;
}
プログラムを印刷したい:
1 2 3
1 2 3
1 2 3
を追加すると、次の\n
ように出力されます。
1\n
2\n
3\n
1\n
2\n
3\n
1\n
2\n
3\n
\n が画面に出力されているものと想像してください。コードが出力するものを表現しようとしています。このボックスに、入力した内容を正確に印刷するのに苦労しています。実際にコマンド画面に表示されている内容を表すために、Enter キーを何度も押すことはできません。
なし/n
で印刷されます
123123123
また、行と列を追加しようとしています。私は何とかコードを見つけ、1 行を除いてほとんどを理解しました。これがコードです。
#include <stdio.h>
int main(void)
{
int i, j, array[5][5], rows[5],cols[5];
for(i=0;i<5;i++)
{
printf("Enter row %d: ", i+1);
for(j=0;j<5;j++)
scanf("%d", &array[i][j]);
}
**for(i=0;i<5;rows[i]=cols[i]=0,i++);**
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
rows[i]=rows[i]+array[i][j];
cols[j]=cols[j]+array[i][j];
}
}
printf("\nRow Totals: ");
for(i=0;i<5;i++)
printf("%d\t", rows[i]);
printf("\nColumn Totals: ");
for(i=0;i<5;i++)
printf("%d\t", cols[i]);
printf("\n");
return 0;
}
for(i=0;i<5;rows[i]=cols[i]=0,i++);
私が理解していない行です。まず、がよくわかりませんrows[i]=cols[i]=0,i++
。2 つ目は、セミコロンが後に続く理由がわかりません。for ステートメントでセミコロンが使用されていないと思ったのですが、この行がないと、またはセミコロンがないとプログラムが正しく動作しません。このコード行なしで使用しようとすると、クレイジーな答えが得られます。配列の要素が0に設定されておらず、このコード行が配列の要素を0に設定しているためだと思います。 Cに比較的慣れていない人にとってより理解しやすい別のコード行はありますか? そして、セミコロンを使用する理由を説明してください。