Marcccccy 发表于 2020-4-20 12:05:31

(小白求助)一段简单代码的输出

请问这个代码的输出是怎么样的鸭?这里的循环我没能搞懂……
    #include<stdio.h>
    main()
    {   int i, j, n=4, a;
      for(i=1; i <= n; i++){
         a = i;
         a = i;
      }
      for(i=1; i<= n; i++)
         for(j=1; j <= i; j++)
               a = i*j;
      for(j=1; j<=n; j++)
         printf("%4d", a);
      printf("\n");
      for(i=1; i<=n; i++){
            for(j=1; j<=i; j++)
                printf("%4d", a);
            printf("\n");
      }
    }

qiuyouzhi 发表于 2020-4-20 12:06:05

哪个循环不懂?

liuzhengyuan 发表于 2020-4-20 12:13:27

你那个程序有点乱
整理一下你应该就能看懂了
#include<stdio.h>
main()
{
        int i, j, n=4, a;
    for(i=1; i <= n; i++){
       a = i;
       a = i;
    }
    for(i=1; i<= n; i++)
    {
       for(j=1; j <= i; j++)
      {
         a = i*j;
      }
    }
    for(j=1; j<=n; j++)
    {
      printf("%4d", a);
    }
    printf("\n");
    for(i=1; i<=n; i++)
    {
      for(j=1; j<=i; j++)
      {
            printf("%4d", a);
      }
    printf("\n");
    }
}

悠悠2264 发表于 2020-4-20 12:19:22

这里的for循环的意思就是:先把i赋值1,如果i<=n,那么就执行循环,执行完以后i+1(i++),如果还是i<=n,那就再执行循环,以此类推,直到i>n为止

Marcccccy 发表于 2020-4-20 17:08:23

liuzhengyuan 发表于 2020-4-20 12:13
你那个程序有点乱
整理一下你应该就能看懂了

所以这里的输出,其实是只有两行嘛?

Marcccccy 发表于 2020-4-20 17:11:14

qiuyouzhi 发表于 2020-4-20 12:06
哪个循环不懂?

原题目是这样子的:
(21)程序运行时,第2行输出   (21)    。
   A. 1 1      B. * 1 2 3 4      C. 1 2 3 4      D.1
(22)程序运行时,第3行输出   (22)    。
   A.0 1      B.2 2 4   C. 1 2   D.24
(23)程序运行时,第4行输出   (23)    。
   A.3 6 9      B.1 2 3 4   C. 3 3 6 9   D.3 3 6
(24)程序运行时,第5行输出   (24)    。
   A. 481216B. 4481216C. 12345D. 16128


但我总觉得它只有两行输出……

Marcccccy 发表于 2020-4-20 17:12:24

悠悠2264 发表于 2020-4-20 12:19
这里的for循环的意思就是:先把i赋值1,如果i

啊啊不好意思 是我没有表述清楚
原题目是这个样子的:
(21)程序运行时,第2行输出   (21)    。
   A. 1 1      B. * 1 2 3 4      C. 1 2 3 4      D.1
(22)程序运行时,第3行输出   (22)    。
   A.0 1      B.2 2 4   C. 1 2   D.24
(23)程序运行时,第4行输出   (23)    。
   A.3 6 9      B.1 2 3 4   C. 3 3 6 9   D.3 3 6
(24)程序运行时,第5行输出   (24)    。
   A. 481216B. 4481216C. 12345D. 16128


但我总觉得它只有两行输出……

liuzhengyuan 发表于 2020-4-20 18:18:30

Marcccccy 发表于 2020-4-20 17:08
所以这里的输出,其实是只有两行嘛?

三行吧~

Marcccccy 发表于 2020-4-20 20:43:43

liuzhengyuan 发表于 2020-4-20 18:18
三行吧~

欸 那这题目是得咋整……{:10_266:}

LuLD 发表于 2020-4-22 20:24:28

int i, j, n=4, a;
      for(i=1; i <= n; i++){
         a = i;
         a = i;
运行完之后: a
a = [,,,,]


for(i=1; i<= n; i++)
    {
       for(j=1; j <= i; j++)
      {
         a = i*j;
      }
    }

这段 运行完之后 a:

a = [,,,,]


接下来是打印的 第一段代码 是
for(j=1; j<=n; j++)
    {
      printf("%4d", a);
    }

打印的是a
1,2,3,4

第二段打印的
for(i=1; i<=n; i++)
    {
      for(j=1; j<=i; j++)
      {
            printf("%4d", a);
      }

i= 1,j=1
i=2,j=1,j=2
i=3,j=1,j=2,j=3
i=4,j=1,j=2,j=3,j=4

a 的值为
a = [,,,,]
打印出来的就是

a                                  :1
a,a                     :2,4
a,a,a            :3,6,9
a,a,a,a :4,8,12,16

Marcccccy 发表于 2020-4-29 18:38:49

LuLD 发表于 2020-4-22 20:24
int i, j, n=4, a;
      for(i=1; i

dbq,才看到帖子……明白辽,谢谢你!{:10_287:}
页: [1]
查看完整版本: (小白求助)一段简单代码的输出