我是一名新的 CS 学生,很难理解二维数组。现在我只是想一次打印出 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
我也在尝试添加行和列。我设法找到了一些代码,并且理解了大部分代码,除了一行。这是代码。
#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++
。其次,我不明白为什么后面有一个分号。我以为 for 语句没有使用分号,但是如果没有这一行,或者没有分号,程序就无法正常工作。当我尝试在没有这行代码的情况下使用它时,它给了我疯狂的答案,我假设是因为数组中的元素未设置为 0,而这行代码将数组的元素设置为 0。有人可以给我另一行代码对 C 语言相对较新的人来说可能更容易理解?也许向我解释为什么它使用分号?