sunnyrubik 发表于 2018-11-7 23:59:54

二维数组的问题

这是小甲鱼老师课后作业的一个问题


然后这个是小甲鱼老师给出的参考答案
#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;
}

请问大家关于第18行的i+j==3就换行是为什么呢?

Jons 发表于 2018-11-7 23:59:55



a
a
a
a
i+j==3 换行
a
a
a
a
i+j==3 换行
a
a
a
a
i+j==3 换行

... 以此类推



千公子 发表于 2018-11-8 09:09:23

每执行循环四次换一行,达到四个一行的效果。

Jons 发表于 2018-11-8 10:05:23

把循环分解一下就明白



a
a
a
a
i+j==3 换行
a
a
a
a
i+j==3 换行
a
a
a
a
i+j==3 换行

... 以此类推



zhang1314hong 发表于 2018-11-8 11:55:28

本帖最后由 zhang1314hong 于 2018-11-8 11:56 编辑

学习了谢谢!还想请问你用的是那个软件编写的,我刚学

sunnyrubik 发表于 2018-11-8 22:59:17

Jons 发表于 2018-11-7 23:59
a
a
a


那假如前面括号里面的数大于3后呢?比如a,a,这样一直下去就恒大与3不就不能换行了吗?

sunnyrubik 发表于 2018-11-8 23:02:57

千公子 发表于 2018-11-8 09:09
每执行循环四次换一行,达到四个一行的效果。

那假如前面括号里面的数大于3后呢?比如a,a,这样一直下去就恒大与3不就不能换行了吗?

sunnyrubik 发表于 2018-11-8 23:03:57

zhang1314hong 发表于 2018-11-8 11:55
学习了谢谢!还想请问你用的是那个软件编写的,我刚学

都是刚学哈{:5_109:},你用的是什么软件啊?

zhang1314hong 发表于 2018-11-9 08:39:54

准备考2级c,用的是visual c++2010 express
页: [1]
查看完整版本: 二维数组的问题