Be猪 发表于 2020-2-28 21:23:26

C语言二维数组

if (i + j == 3)
{
        printf("\n”);
}
   1   2   34
   5   6   78
   9 10 11 12
13 14 15 16
17 18 19 20

我想问下第二行开始i + j 不是3 + 1吗?怎么还能打印换行呢?

qiuyouzhi 发表于 2020-2-28 21:24:51

别发截图,发文本代码!

Be猪 发表于 2020-2-28 21:29:43

qiuyouzhi 发表于 2020-2-28 21:24
别发截图,发文本代码!

截图你看不懂?

qiuyouzhi 发表于 2020-2-28 21:30:16

Be猪 发表于 2020-2-28 21:29
截图你看不懂?

我要复制下来编辑

4goodworld 发表于 2020-2-28 21:32:57

你想干嘛?能不能把你的需求说清楚?

Be猪 发表于 2020-2-28 21:54:45

本帖最后由 Be猪 于 2020-2-28 21:56 编辑

qiuyouzhi 发表于 2020-2-28 21:30
我要复制下来编辑

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

Be猪 发表于 2020-2-28 22:00:15

本帖最后由 Be猪 于 2020-2-28 22:01 编辑

Be猪 发表于 2020-2-28 21:54
#include

int main()


Be猪 发表于 2020-2-28 22:06:56

qiuyouzhi 发表于 2020-2-28 21:30
我要复制下来编辑

直接发代码有时候有一些代码显示不出来

major_lyu 发表于 2020-2-28 23:54:14

首先打印回车的条件是i+j等于3;
第一行的回车 i=0; j=3
第二行的回车 i=1;    j=2;
第三行的回车 i=2;    j=1
第四行的回车 i =3;   j=0
原因打印完回车会接着i和j的值继续按照for循环打印下一个元素,而不是指向数组下一行的第一个元素。
第二行开始的时候i=0的,打印完数组第一行数据之后,i才等于1. 这时j会从0开始循环,从而打印数组的第二行元素,当打印完数组第二行第3个元素时,j=2, i=1; 也会打印回车啊。
一次类推。i的值是从0~3,j的值是从0~4.i,j的所有组合就是
(0,0)(0,1)(0,2)(0,3)(0,4)
(1,0)(1,1)(1,2)(1,3)(1,4)
(2,0)(2,1)(2,2)(2,3)(2,4)
(3,0)(3,1)(3,2)(3,3)(3,4)
显然黑体的四个组合是会打印回车的

Be猪 发表于 2020-2-29 08:49:38

major_lyu 发表于 2020-2-28 23:54
首先打印回车的条件是i+j等于3;
第一行的回车 i=0; j=3
第二行的回车 i=1;    j=2;


谢谢大佬指点,我之前一直在用打印出来的结果来计算,难怪算不出来。谢谢大佬解决了我的疑惑!

major_lyu 发表于 2020-2-29 12:59:05

Be猪 发表于 2020-2-29 08:49
谢谢大佬指点,我之前一直在用打印出来的结果来计算,难怪算不出来。谢谢大佬解决了我的疑惑!

呵呵,看不懂就调试单步执行,跟踪一下,看看感觉出错的变量的值就知道了

Be猪 发表于 2020-2-29 14:41:46

major_lyu 发表于 2020-2-29 12:59
呵呵,看不懂就调试单步执行,跟踪一下,看看感觉出错的变量的值就知道了

恩恩,谢谢大佬指点
页: [1]
查看完整版本: C语言二维数组