论坛: 编程破解 标题: c语言问题高手进来 复制本贴地址    
作者: rishian [rishian]    论坛用户   登录
求下面程序的结果
#include <studio.h>
main()
{ int k,j,m;
  for(k=5;k>=1;k--)
  { m=0;
    for (j=k;j<=5;j++)
    m=m+k*j;
}
printf("%d\n",m);
}
哪位知道做请告诉我 谢了

地主 发表时间: 04-03-11 10:46

回复: afan271314 [afan271314]   论坛用户   登录
5*5+4*(4+5)+3*(3+4+5)+2*(2+3+4+5)+1*(1+2+3+4+5)

B1层 发表时间: 04-03-11 10:53

回复: rishian [rishian]   论坛用户   登录
算错啦 答案是15



[此贴被 rishian(rishian) 在 03月11日10时59分 编辑过]

B2层 发表时间: 04-03-11 10:59

回复: afan271314 [afan271314]   论坛用户   登录
不好意思 没看清楚  没错是15  1+2+3+4+5

B3层 发表时间: 04-03-11 11:43

回复: lida1818 [lida1818]   论坛用户   登录
1+2+3+4+5=15

问题在 m=0;

B4层 发表时间: 04-03-11 11:49

回复: moneyl [moneyl]   论坛用户   登录
结果是15
看你的程序好象要输出每行的值
下面改了一下
#include <studio.h>
main()
{ int k,j,m;
  for(k=5;k>=1;k--)
  { m=0;
    for (j=k;j<=5;j++)
    m=m+k*j;
printf("%d\n",m);}
}


B5层 发表时间: 04-03-11 13:18

回复: rishian [rishian]   论坛用户   登录
怎么算来的啊 能讲详细点吗?谢了啊

B6层 发表时间: 04-03-11 13:37

回复: lida1818 [lida1818]   论坛用户   登录
这个就是你的程序的运行过程

main()
{ int k,j,m;
  for(k=5;k>=1;k--)
  { m=0;
                          printf("打印MK1值:");
                          printf("%d\n",m);

    for (j=k;j<=5;j++)
    {                    printf("打印J值:");
                          printf("%d\n",j);
    m=m+k*j;
                          printf("打印Mj值:");
                          printf("%d\n",m);
      }

                          printf("打印K值:");
                          printf("%d\n",k);
                          printf("打印MK2值:");
    printf("%d\n",m);
    }
    printf("打印M值:");
    printf("%d\n",m);
}


打印MK1值:0
打印J值:5
打印Mj值:25
打印K值:5
打印MK2值:25
打印MK1值:0
打印J值:4
打印Mj值:16
打印J值:5
打印Mj值:36
打印K值:4
打印MK2值:36
打印MK1值:0
打印J值:3
打印Mj值:9
打印J值:4
打印Mj值:21
打印J值:5
打印Mj值:36
打印K值:3
打印MK2值:36
打印MK1值:0
打印J值:2
打印Mj值:4
打印J值:3
打印Mj值:10
打印J值:4
打印Mj值:18
打印J值:5
打印Mj值:28
打印K值:2
打印MK2值:28
打印MK1值:0
打印J值:1
打印Mj值:1
打印J值:2
打印Mj值:3
打印J值:3
打印Mj值:6
打印J值:4
打印Mj值:10
打印J值:5
打印Mj值:15
打印K值:1
打印MK2值:15
打印M值:15


B7层 发表时间: 04-03-11 16:32

回复: lengxuehnc [lengxuehnc]   论坛用户   登录
程序运行结果为:
5*5+(4*4+5*4)+…………………………………………

我把程序改了下为:
main()
{
  int j,k,m=0;
  for(k=5;k<=5;k--)
    {
      for(j=k;j<=5;j++)
      m+=j*k;
      printf("%d\t",m);
    }
  printf("\n\n");
}
运行结果如下:
25      41      61      70      82      97      101    107    115    125
126    128    131    135    140


B8层 发表时间: 04-03-11 23:21

回复: bes1987 [bes1987]   论坛用户   登录
我才学TC,不过我知道楼上的答得都不对。
搂主把#include "stdio.h" 打成"studio.h"了,改过来就好了,我试过!!
  前辈们,不好意思,新手献丑了!!

B9层 发表时间: 06-04-21 18:37

回复: xiaoshi [xiaoshi]   论坛用户   登录
k=1
<1>  m=1
<2>  m=1+2=3
<3>  m=3+3=6
<4>  m=6+4=10
<5>  m=10+5=15
************
其实主要就执行了k=1时,第二个循环,你的m=0把第一个循环所有的结果都作废了。
不知道你要做什么?

B10层 发表时间: 06-04-21 20:34

回复: digitalboy [digitalboy]   论坛用户   登录
详细,很好啊!

B11层 发表时间: 06-04-22 10:12

回复: sniper167 [sniper167]   论坛用户   登录
地主 发表时间: 04-03-11 10:46

B12层 发表时间: 06-04-22 11:23

回复: zhangkun [zhangkun]   论坛用户   登录
在C语言环境下运行下不就可以了吗?


B13层 发表时间: 06-05-06 19:17

回复: NetFog [q70213526]   版主   登录
答案是15吧。。

虽然没学过C,不过都是相通的。

B14层 发表时间: 06-05-09 19:57

回复: listenwind [listenwind]   论坛用户   登录
主要注意一下循环镶套时程序执行的顺序就行了 !

B15层 发表时间: 06-05-14 18:43

回复: jijian1985 [jijian1985]   论坛用户   登录
是啊!前面的K=5,4,3,2对结果都没有影响,因为M=0把M的值都覆盖了,只有K=1的循环对结果有影响!结果是1+2+3+4+5=15.

B16层 发表时间: 06-05-28 09:07

回复: zuiaizhy [zuiaizhy]   论坛用户   登录
第一步
m=25
接着
m=25+16
m=25+16+20
m=25+16+20+9
m=25+16+20+9+12+15+4+6+8+10+1+2+3+4+5
m=140

不好意思
把循环里面的m=0给忽略了
应该是15

[此贴被 zuiaizhy(zuiaizhy) 在 06月24日05时20分 编辑过]

B17层 发表时间: 06-06-24 05:16

论坛: 编程破解

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号