Frank_CYY 发表于 2019-5-25 10:59:12

函数嵌套调用的问题

#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?

82457097 发表于 2019-5-27 14:09:04

你理解的对
#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]
查看完整版本: 函数嵌套调用的问题