Juniorboy 发表于 2020-4-28 19:21:52

二维数组,课后作业20之打印数组

#include <stdio.h>

int main()
{
      int a = {
                {1, 2, 3, 4, 5},
                {6, 7, 8, 9, 10},
                {11, 12, 13, 14, 15},
                {16, 17, 18, 19, 20}};

      int i, j;

      for (i = 0; i < 4; i++)
      {
                for (j = 0; j < 5; j++)
                {
                        printf("%2d ", a);
                        if (i + j == 3)
                        {
                              printf("\n");
                        }
                }
      }
      printf("\n");

      return 0;
}

这个代码打印之后的结果,跟我想的不一样啊,第一行一样,第二行到7的话不就得换行了吗,因为i=1,j=2了,请问为什么没有换行。

人造人 发表于 2020-4-28 19:27:18

#include <stdio.h>

int main()
{
    int a = {
      {1, 2, 3, 4, 5},
      {6, 7, 8, 9, 10},
      {11, 12, 13, 14, 15},
      {16, 17, 18, 19, 20}};

    int i, j;

    for (i = 0; i < 4; i++)
    {
      for (j = 0; j < 5; j++)
      {
            printf("i=%d,j=%d\n", i, j);
            printf("a[%d][%d]=%2d\n", i, j, a);
            if (i + j == 3)
            {
                printf("i+j==3\n\n");
            }
      }
    }
    printf("\n");

    return 0;
}


i=0,j=0
a= 1
i=0,j=1
a= 2
i=0,j=2
a= 3
i=0,j=3
a= 4
i+j==3

i=0,j=4
a= 5
i=1,j=0
a= 6
i=1,j=1
a= 7
i=1,j=2
a= 8
i+j==3

i=1,j=3
a= 9
i=1,j=4
a=10
i=2,j=0
a=11
i=2,j=1
a=12
i+j==3

i=2,j=2
a=13
i=2,j=3
a=14
i=2,j=4
a=15
i=3,j=0
a=16
i+j==3

i=3,j=1
a=17
i=3,j=2
a=18
i=3,j=3
a=19
i=3,j=4
a=20

Juniorboy 发表于 2020-4-28 19:46:24

人造人 发表于 2020-4-28 19:27


您辛苦了,明白了,很详细,谢谢啦
页: [1]
查看完整版本: 二维数组,课后作业20之打印数组