| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 618 人关注过本帖
标题:初学者,请老师们不吝赐教
只看楼主 加入收藏
meishanhuang
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2012-2-12
结帖率:81.82%
收藏
已结贴  问题点数:20 回复次数:5 
初学者,请老师们不吝赐教
现有以下C语言程序,从键盘上输入数字5,写出程序输出结果?
int fun (int n)
{ static int f=1;
  int k;
  for (k=1;k< =n; k++)
      f* =k;
      return f;
}
main ( )
{ int n, i;
  scanf (“%d”,&n);
  for (i=1;i<n;i++)
  printf (“i=%d ,r=%d\n”,i, fun(i));
}
答案:i=1  r=1
      i=2  r=2
      i=3  r=12
      i=4  r=288
本人只能看懂i=1,i=2的运算过程,但i=3,i=4的运算过程无法理解,请老师们不吝赐教,最好详细说明运算过程,万分感谢。
搜索更多相关主题的帖子: 键盘 return C语言 
2012-02-12 15:00
yxiangyxiang
Rank: 3Rank: 3
来 自:/\/\/\/\/
等 级:论坛游侠
帖 子:130
专家分:186
注 册:2012-1-29
收藏
得分:0 
学到后面自然就懂了.

[ 本帖最后由 yxiangyxiang 于 2012-2-12 17:22 编辑 ]
2012-02-12 17:20
tt7721
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:60
专家分:107
注 册:2011-8-7
收藏
得分:10 
这段代码涉及到了使用static声明局部变量(我不会用。。刚学了)
先简单介绍一下  函数中局部变量的值在函数调用结束后不消失而保留原值
i=1  r=1
i=2  r=2
你明白我就不说了
现在f=2  i=3  带入fun函数  执行下面的代码
for (k=1;k< =3; k++)
      f* =k;
f=f*k=2*1=2
f=f*k=2*2=4
f=f*k=4*3=12
return (f);
也就是第三行的答案 i=3  r=12
第四行运行结果 你可以按照我说的方法试试


2012-02-12 17:33
施熠
Rank: 2
来 自:南京
等 级:论坛游民
帖 子:69
专家分:29
注 册:2012-2-4
收藏
得分:10 
回复 楼主 meishanhuang
键入n=5即转化为
fot(i=1;i<=5;i++)
首先,你要看懂fun()函数,
int fun (int n)
{ static int f=1;
  int k;
  for (k=1;k< =n; k++)
      f* =k;
      return f;
}
当i=1时,输出fun(1),代入上式,即n=1,所以f=1
当i=2时,输入fun(2),代入上式,即n=2,所以f=2
当i=3时,输入fun(3),代入上式,即n=3,所以f=1*2=2,f=2*2=4,f=3*4=12这里我红色写出来的是原来f的值,
当i=4时,输入fun(4),代入上式,即n=4,所以f=1*12=12,f=2*12=24,f=3*24=72,f=4*72=288.
你一步步往下代,会算出来的.
2012-02-12 18:40
snakelazixp
Rank: 2
等 级:论坛游民
帖 子:51
专家分:94
注 册:2012-2-13
收藏
得分:0 
去看下static是怎么用的就行了。。。。。。。。。。。。。
2012-02-15 15:06
kwq498901
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2011-11-17
收藏
得分:0 
static
2012-02-15 15:18
快速回复:初学者,请老师们不吝赐教
数据加载中...
 
   



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

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