函数嵌套调用的问题
#include<stdio.h>long square(int p);
long factorial(int q);
int main(void)
{
int i;
long s=0;
for(i=2;i<=3;i++)
{
s=s+square(i);
}
printf("%d\n",s);
}
long square(int p)
{
int k;
long r;
long factorial(int);
k= p * p;
r=factorial(k);
return k;
}
long factorial(int q)
{
long c=1;
int i;
for(i=1;i<=q;i++)
{
c*=i;
}
returnc;
}
问下各位大神,为什么程序输出的值是13,怎么得来的?
难道就是i=2,S=4;
i=3时,S=4+9=13? 你理解的对
#include<stdio.h>
long square(int p);
long factorial(int q);
int main(void) {
int i;
long s=0;
for(i=2;i<=3;i++) {
s=s+square(i); //0+4+9=13
}
printf("%d\n",s);
}
long square(int p) {
int k;
long r;
long factorial(int);
k= p * p;
r=factorial(k);
return k; //在这里返回k 而不是返回r 所以factional函数不起作用
}
long factorial(int q) {
long c=1;
int i;
for(i=1;i<=q;i++) {
c*=i;
}
returnc;
}
页:
[1]