Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何使外部for循环迭代超过I=1?_C - Fatal编程技术网

C 如何使外部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;

该代码用于制作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; 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;i
for(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
for)的
之前添加一行
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++)