|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 ZPCG 于 2011-8-22 10:33 编辑
下面这个程序,算出来S=0,我怎么查都查不出问题,请大家帮我看一下.谢谢了!
- /*计算s=(a的平方的阶乘)+(b的平方的阶乘).......,其中a,b,......为键盘输入的值*/
- #include <stdio.h>
- void main()
- {
- long square(long n);
- long factorial(long m);
- long s = 0, n;
- printf("input: \n");
- while(scanf("%d", &n) != EOF)
- {
- s = s + square(n);
- }
- printf("s= %d\n", s);
- }
- long square(long n)
- {
- long factorial(long m);
- long p;
- long m;
- m = n * n;
- p = factorial(m);
- return p;
- }
- long factorial(long m)
- {
- long q = m;
- while(m--)
- {
- q = q * m;
- }
- return q;
- }
复制代码
自己查出来了,关键问题就是在定义函数factorial()的时候,while(m--)要改成while(--m),原来那个会乘以0,使其返回值永远是0. |
|