|
发表于 2014-4-5 19:54:48
|
显示全部楼层
偶来也 ,调试了N久才找到POINT------
#include <stdio.h>
#include <math.h>
long square(int p); //声明求平方的函数square
long factorial(int q); //声明求阶乘的函数factorial
void main()
{
int i; //定义整型变量i
long s=0; //定义长整变量s,并赋值
for(i=2; i<=3; i++) //进入for循环
{
s = s + square(i); //在等式中调用函数square
}
printf("%ld\n",s); //输出2^2! + 3^2! 的结果
}
long square(int p) //定义函数square, 在此p=i,
{
int k;
long r;
long factorial(int); //声明求阶乘的函数factorial,此句可省略,因在开头已经声明过了
k = p * p; // 相当于k=i*i,即平方
r=factorial(k);
//调用阶乘函数factorial,
return r; //返回r的值给s=s+square(i);
}
long factorial(int q) //定义函数factorial, 在此q=k,
{
long c=1;
int j; //之所以把i改成j,是为了更易在调试中看懂^^,不改也没问题嘀
for(j=1; j<=q; j++) //进入for循环
{
c += j; //此句要改为c *= j, 否则结果是57,而不是4!+9!=362904
//相当于计算c=4*3*2*1 及 c=9*8*7*6*5*4*3*2*1
}
return c; //返回c的值给r=factorial(k);
}
{:7_183:}终于交到功课了,嘻嘻 |
|