C 如何使外部for循环迭代超过I=1?
该代码用于制作3个2D阵列(3x3)。ar1由1组成,ar2的对角线分量等于2,否则为0。ar3是ar1和ar2的每个对应索引的总和。为此,我使用了一个嵌套的for循环,但出于某种原因,外部for循环会在I=1时连续迭代。有人知道如何解决这个问题吗C 如何使外部for循环迭代超过I=1?,c,C,该代码用于制作3个2D阵列(3x3)。ar1由1组成,ar2的对角线分量等于2,否则为0。ar3是ar1和ar2的每个对应索引的总和。为此,我使用了一个嵌套的for循环,但出于某种原因,外部for循环会在I=1时连续迭代。有人知道如何解决这个问题吗 #include <stdio.h> #define SIZE 2 int main(void) { int i = 0, j, ar1[2][2], ar2[2][2], ar3[2][2]; for(i = 0;
#include <stdio.h>
#define SIZE 2
int main(void)
{
int i = 0, j, ar1[2][2], ar2[2][2], ar3[2][2];
for(i = 0; i<=SIZE; i++)
{
for(j = 0; j<=SIZE; j++)
{
ar1[i][j] = 1;
if(i == j)
ar2[i][j] = 2;
else
ar2[i][j] = 0;
ar3[i][j] = ar1[i][j] + ar2[i][j];
printf("%-4d", ar3[i][j]);
}
printf("\n");
}
return 0;
}
#包括
#定义大小2
内部主(空)
{
int i=0,j,ar1[2][2],ar2[2][2],ar3[2][2];
对于(i=0;i当i==SIZE
int i = 0, j, ar1[2][2], ar2[2][2], ar3[2][2];
for(i = 0; i<=SIZE; i++)
{
for(j = 0; j<=SIZE; j++)
{
ar1[i][j] = 1;
等等……(请注意,如果将大小定义为2
,最好也使用它来初始化数组)
顺便说一句,如果要制作3x3阵列,必须将大小设置为3
#define SIZE 3
因此,第一个有效索引是0,最后一个有效索引是2。当i==SIZE
int i = 0, j, ar1[2][2], ar2[2][2], ar3[2][2];
for(i = 0; i<=SIZE; i++)
{
for(j = 0; j<=SIZE; j++)
{
ar1[i][j] = 1;
等等……(请注意,如果将大小定义为2
,最好也使用它来初始化数组)
顺便说一句,如果要制作3x3阵列,必须将大小设置为3
#define SIZE 3
因此,在任何编程语言中,第一个有效索引是0,最后一个有效索引是2,基本上有两种方法来编写“for i In 1 to N循环”:
for(i=1;i在任何编程语言中,基本上有两种编写“for i In 1 to N循环”的方法:
(i=1;ifor(i=0;i@Jean-Françoisfare不,这是绝对定义的行为,循环执行3个timnes。同意,条件应该像你说的那样。你说你的数组是3x3,但你的代码包含行“#define SIZE 2”。这两个事实似乎不兼容。你可能想说int ar1[SIZE][SIZE],ar2[SIZE][SIZE],ar3[SIZE][SIZE];
。我建议您在(j=0;jfor)的之前添加一行printf(“I=%d\n”,I);
(i=0;i@Jean-Françoisfare不,这是绝对定义的行为,循环执行3个timnes。同意,条件应该和你说的一样。你说你的数组是3x3,但你的代码包含行“#define SIZE 2”。这两个事实似乎不兼容。你可能想说int ar1[SIZE][SIZE],ar2[SIZE][SIZE],ar3[SIZE][SIZE]
。我建议您在(j=0;j)的之前添加一行printf(“I=%d\n”,I);
for(i = 1; i < N; i++) /* questionable */
for(i = 0; i <= N; i++) /* questionable */
for(i = 0; i < SIZE; i++)