鱼C论坛

 找回密码
 立即注册
查看: 636|回复: 10

[已解决](小白求助)一段简单代码的输出

[复制链接]
发表于 2020-4-20 12:05:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
请问这个代码的输出是怎么样的鸭?这里的循环我没能搞懂……
  1.     #include<stdio.h>
  2.     main()
  3.     {   int i, j, n=4, a[10][10];
  4.         for(i=1; i <= n; i++){
  5.            a[0][i] = i;
  6.            a[i][0] = i;
  7.         }
  8.         for(i=1; i<= n; i++)
  9.            for(j=1; j <= i; j++)
  10.                a[i][j] = i*j;
  11.         for(j=1; j<=n; j++)
  12.            printf("%4d", a[0][j]);
  13.         printf("\n");
  14.         for(i=1; i<=n; i++){
  15.             for(j=1; j<=i; j++)
  16.                 printf("%4d", a[i][j]);
  17.             printf("\n");
  18.         }
  19.     }
复制代码
最佳答案
2020-4-22 20:24:28
int i, j, n=4, a[10][10];
        for(i=1; i <= n; i++){
           a[0][i] = i;
           a[i][0] = i;
运行完之后: a
a = [[0,1,2,3,4],[1],[2],[3],[4]]


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

这段 运行完之后 a:

a = [[0,1,2,3,4],[1,1],[2,4],[3,6,9],[4,8,12,16]]


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

打印的是  a[0][1-4]
1,2,3,4

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

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 = [[0,1,2,3,4],[1,1],[2,4],[3,6,9],[4,8,12,16]]
打印出来的就是

a[1][1]                                  :1
a[2][1],a[2][2]                       :2,4
a[3][1],a[3][2],a[3][3]            :3,6,9
a[4][1],a[4][2],a[4][3],a[4][4] :4,8,12,16
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-20 12:06:05 | 显示全部楼层
哪个循环不懂?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-20 12:13:27 | 显示全部楼层
你那个程序有点乱
整理一下你应该就能看懂了
  1. #include<stdio.h>
  2. main()
  3. {
  4.         int i, j, n=4, a[10][10];
  5.     for(i=1; i <= n; i++){
  6.        a[0][i] = i;
  7.        a[i][0] = i;
  8.     }
  9.     for(i=1; i<= n; i++)
  10.     {
  11.        for(j=1; j <= i; j++)
  12.         {
  13.            a[i][j] = i*j;
  14.         }
  15.     }
  16.     for(j=1; j<=n; j++)
  17.     {
  18.         printf("%4d", a[0][j]);
  19.     }
  20.     printf("\n");
  21.     for(i=1; i<=n; i++)
  22.     {
  23.         for(j=1; j<=i; j++)
  24.         {
  25.             printf("%4d", a[i][j]);
  26.         }
  27.     printf("\n");
  28.     }
  29. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-20 12:19:22 | 显示全部楼层
这里的for循环的意思就是:先把i赋值1,如果i<=n,那么就执行循环,执行完以后i+1(i++),如果还是i<=n,那就再执行循环,以此类推,直到i>n为止
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-20 17:08:23 | 显示全部楼层
liuzhengyuan 发表于 2020-4-20 12:13
你那个程序有点乱
整理一下你应该就能看懂了

所以这里的输出,其实是只有两行嘛?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-20 17:11:14 | 显示全部楼层

原题目是这样子的:
(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.  2  4
(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. 4  8  12  16  B. 4  4  8  12  16  C. 1  2  3  4  5  D. 16  12  8


但我总觉得它只有两行输出……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 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.  2  4
(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. 4  8  12  16  B. 4  4  8  12  16  C. 1  2  3  4  5  D. 16  12  8


但我总觉得它只有两行输出……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-20 18:18:30 | 显示全部楼层
Marcccccy 发表于 2020-4-20 17:08
所以这里的输出,其实是只有两行嘛?

三行吧~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-20 20:43:43 | 显示全部楼层

欸 那这题目是得咋整……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-22 20:24:28 | 显示全部楼层    本楼为最佳答案   
int i, j, n=4, a[10][10];
        for(i=1; i <= n; i++){
           a[0][i] = i;
           a[i][0] = i;
运行完之后: a
a = [[0,1,2,3,4],[1],[2],[3],[4]]


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

这段 运行完之后 a:

a = [[0,1,2,3,4],[1,1],[2,4],[3,6,9],[4,8,12,16]]


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

打印的是  a[0][1-4]
1,2,3,4

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

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 = [[0,1,2,3,4],[1,1],[2,4],[3,6,9],[4,8,12,16]]
打印出来的就是

a[1][1]                                  :1
a[2][1],a[2][2]                       :2,4
a[3][1],a[3][2],a[3][3]            :3,6,9
a[4][1],a[4][2],a[4][3],a[4][4] :4,8,12,16
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-29 18:38:49 | 显示全部楼层
LuLD 发表于 2020-4-22 20:24
int i, j, n=4, a[10][10];
        for(i=1; i

dbq,才看到帖子……明白辽,谢谢你!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 17:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表