搜索
楼主: 18320012584
打印 上一主题 下一主题

一个好标题,将获得更多人关注哦。求阶乘的代码

[复制链接]
楼主
发表于 2014-4-22 12:35:00 | 显示全部楼层
18320012584 发表于 2014-4-22 13:33
我理解不了你说的这段话,不过我上面要提问的就是  《啊哈c思考快你一步》这本书的第四章,第四节,求和, ...

你直接告诉我,上面那段代码哪些不让用,哪些你看不懂不就好了?

另外,书上那道习题的意思是,输入的数据只会在[1,9],而不是超过这个范围就一定不输出正确答案,你不用考虑超过范围这个问题
沙发
发表于 2014-4-22 13:04:15 | 显示全部楼层
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <assert.h>

  4. int fac(int);

  5. int main()
  6. {
  7.         int n;
  8.         scanf("%d", &n);
  9.         assert(n >= 1 && n <= 9);
  10.         printf("%d\n", fac(n));
  11.         system("pause");
  12.         return 0;
  13. }

  14. int fac(int n)
  15. {
  16.         if(n == 1)
  17.                 return 1;
  18.         return n * fac(n-1);       
  19. }
复制代码
板凳
发表于 2014-4-22 13:08:05 | 显示全部楼层
18320012584 发表于 2014-4-22 13:05
不好意思,我要的是只能用while或者if语句来实现的。。。。。我只学到了while,if

那段连while if都没用,不是比你要求的更高?
地板
发表于 2014-4-22 15:36:26 | 显示全部楼层
河蟹 发表于 2014-4-22 15:20
想要限制范围的话按下面的那样写就行了

这样多算一次fac(n)
5#
发表于 2014-4-22 15:48:20 | 显示全部楼层
河蟹 发表于 2014-4-22 15:41
嗯,所以后面就更正了,直接赋值的说,仔细一看,确实是我的疏忽,直接把fac()放入printf里就行了

注视的斜杠反了……
\\是无法编译的……
6#
发表于 2014-4-22 15:54:50 | 显示全部楼层
河蟹 发表于 2014-4-22 15:38
再来一个加入了while循环,当输入超出范围时更正输入

循环里面放scanf记得清缓冲区
7#
发表于 2014-4-22 16:17:22 | 显示全部楼层
河蟹 发表于 2014-4-22 16:13
是加入fflush(stdin)吗?

fflush(stdin)不能移植
用getchar清吧
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表