wwWsir 发表于 2021-12-15 08:07:12

为什么他出现了才让分行

这个里面为什么会出现if (i +j ==3)这个是什么意思为什么只有他出现了才会让整个展示出来分行




#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;
}

阿萨德按时 发表于 2021-12-15 09:16:59

虽然不太清楚你想问什么 但是程序是不是错了 应该是printf("%2d ", a);吧

wwWsir 发表于 2021-12-15 10:23:53

阿萨德按时 发表于 2021-12-15 09:16
虽然不太清楚你想问什么 但是程序是不是错了 应该是printf("%2d ", a);吧

就是为什么只有他出现了,最后所展现出的才会换行,没有他最后展现的就是一行数

wp231957 发表于 2021-12-15 11:14:48

wwWsir 发表于 2021-12-15 10:23
就是为什么只有他出现了,最后所展现出的才会换行,没有他最后展现的就是一行数

自己把循环变量的值,带进去跑一下,不就全清楚了

wwWsir 发表于 2021-12-15 11:27:38

wp231957 发表于 2021-12-15 11:14
自己把循环变量的值,带进去跑一下,不就全清楚了

额,我不太懂,能否详细说一下

阿萨德按时 发表于 2021-12-15 11:28:12

wwWsir 发表于 2021-12-15 10:23
就是为什么只有他出现了,最后所展现出的才会换行,没有他最后展现的就是一行数

因为if (i + j == 3)条件成立的话就会执行printf("\n");就是打印输出换行符\n

wwWsir 发表于 2021-12-15 11:31:28

阿萨德按时 发表于 2021-12-15 11:28
因为if (i + j == 3)条件成立的话就会执行printf("\n");就是打印输出换行符\n

为什么是i +j ==3才换行? 为什么不是i + j ==5换行?

阿萨德按时 发表于 2021-12-16 09:13:02

本帖最后由 阿萨德按时 于 2021-12-16 09:18 编辑

wwWsir 发表于 2021-12-15 11:31
为什么是i +j ==3才换行? 为什么不是i + j ==5换行?

{:10_266:}为什么的话我也不清楚 i + j == 3第一次循环会在第四个值换行,打印出1 2 3 4
                                                                                                            5
第二次就是在第三个值换行,打印1 2 3 4
                                                5 6 7 8
                                                9 10
依次类推
但是i + j == 5第一次循环不会换行,第二次循环会在最后一个值换行,第一行就会打印10个值

页: [1]
查看完整版本: 为什么他出现了才让分行