| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3068 人关注过本帖
标题:我是一名大一的新生,最近学C程遇到了几个问题,麻烦大家帮帮忙!(是不是女 ...
只看楼主 加入收藏
jy00707200
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-4-16
收藏
 问题点数:0 回复次数:24 
我是一名大一的新生,最近学C程遇到了几个问题,麻烦大家帮帮忙!(是不是女生不适合学C语言啊)
题目是求   20
           ∑ n!  既求(1!+2!+...+20!)
           n=1

答案给出的C程的代码是
#include<stdio.h>
main()
{
      float n,s=0,t=1;
      for(n=1;n<=20;n++)
      {
                        t=t*n;
                        s=s+t;
                        }
                        printf("1!+2!+3!+...+20!=%e\n",s);
                        }

但是其中的这个部分看不懂。。。唉,刚刚学了循环语句和for语句,对于下面这两句老是不能理解,希望高手们能详细解释下应该怎么理解。。

  for(n=1;n<=20;n++)
      {
                        t=t*n;
                        s=s+t;


PS:我个人的理解是:因为s=0,t=1所以,当n=1开始时,t1=1*1=1,s1=0+1=1....然后一直加到s20=xxx,但是就是不理解为什么这两个式子为什么就能表示
阶乘的和。。。应该怎么理解。

我们老师写的这个题的C程代码是:
#include<stdio.h>
main()
{
 int i,j;
 long int s1,s2;
 s1=0;
 for(i=1;i<=20;i++)
      {s2=1;
      for(j=1;j<=i;j++)
      {
      s2*=j;}
      s1+=s2;}
      printf("%ld",s1);
      }

但是这个部分也是不理解:
for(i=1;i<=20;i++)
      {s2=1;
      for(j=1;j<=i;j++)
      {
      s2*=j;}
      s1+=s2;}


唉,想了两天了,还是不明白,是不是女生不适合学C程啊?郁闷死了
搜索更多相关主题的帖子: C语言 新生 女生 麻烦 语句 
2008-04-16 21:40
雨中飞燕
Rank: 3Rank: 3
等 级:禁止访问
威 望:8
帖 子:2200
专家分:0
注 册:2007-8-9
收藏
得分:0 
你想让偶怎么说。。。。。

" border="0" />
2008-04-16 21:53
moonwalker
Rank: 1
等 级:新手上路
威 望:1
帖 子:909
专家分:2
注 册:2007-3-2
收藏
得分:0 
#include<stdio.h>
main()
{
    float n,s=0,t=1;
    for(n=1;n<=20;n++)
    {
        t=t*n;//这里是计算n!
        s=s+t;//这里是逐个把n!相加
    }
    printf("1!+2!+3!+...+20!=%e\n",s);
}
你可以考虑下第n次进入for循环的时候循环体做了什么
例如:
n=1:t=1*1=1!
     s=0+1!=1!
n=2: t=1!*2=2!
     s=1!+2!=3!
依次类推,(上面式子只是为了说明问题,不表示语法正确)

PS:编程没有国界,不分性别,只有是否肯下功夫
    我们公司有个mm,和她讨论编程问题,你刚想转个弯,她已经转了好几个弯,把你还没问得问题都替你想清楚了,让我很无语。。。

“视频教程网”免费提供教学资源
C不限制你的自由!
条件是自己承担滥用自由的恶果!
2008-04-16 21:56
gaoce227
Rank: 4
来 自:山东
等 级:业余侠客
帖 子:134
专家分:218
注 册:2008-4-5
收藏
得分:0 
回复 1# 的帖子
s=s+t;变量值s处于动态变化中,在for循环中,只要n<=20就执行循环
                        {t=t*n;
                        s=s+t;
                        }
每执行一次,s就重新赋值,直到n=20.希望我答出你想要的!
不分男女吧!我们学校女生强的多得多啊!

[[it] 本帖最后由 gaoce227 于 2008-4-16 22:01 编辑 [/it]]
2008-04-16 21:57
龙年生
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2008-3-8
收藏
得分:0 
你先搞清楚什么叫“循环”吧。
不能理解就一步步的推吧。
n分别等于1、2……、n时看看s和t分别等于什么就清楚了。
2008-04-16 22:04
jy00707200
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-4-16
收藏
得分:0 
非常感谢楼上的几位朋友的帮助,由于刚刚接触C程,可能自己练得也太少了,我会加油的,一定把C程学好,再次感谢大家
2008-04-16 22:07
yd4433
Rank: 1
等 级:新手上路
帖 子:404
专家分:0
注 册:2008-3-9
收藏
得分:0 
xue  循环 没啥诀窍 多练 当你想不通的时候把数字一个一个带进循环去算
这样方法虽然很笨 但是很实用 我的一位师哥的诀窍 我也借鉴了 很好用真的

------...-.-..-...-----........-------.......----.....------....||- - !
2008-04-16 23:05
now
Rank: 1
来 自:广州
等 级:新手上路
帖 子:544
专家分:0
注 册:2007-11-9
收藏
得分:0 
每个人都是一样的,只要肯付出,没有什么是办不到的。

GIS
Geographic Information System
你在哪里?——》你的坐标?
2008-04-16 23:25
qq349004853
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2008-3-27
收藏
得分:0 
#include<stdio.h>
main()
{
      float n,s=0,t=1;
      for(n=1;n<=20;n++)
      {
                        t=t*n;     //t的作用是储存1*2*。。。*(N-1)的值
                        s=s+t;
                        }
                        printf("1!+2!+3!+...+20!=%e\n",s);
                        }
2008-04-17 09:40
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
收藏
得分:0 
是不是女生不适合学C语言啊?

我觉得的确不太适合````又伤脑筋又伤神```

但是我觉得``学C``最需要的是  向目标坚持不懈的努力 和  对C无限的热爱

女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
2008-04-17 13:04
快速回复:我是一名大一的新生,最近学C程遇到了几个问题,麻烦大家帮帮忙!(是 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013249 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved