关于函数嵌套
#include <stdio.h>int main()
{
int a(int x);
int b(int y);
int s;
s=a(2)+a(3);
printf("%d",s);
}
int a(int x)
{
int i,c,d=1;
int b(int y);
for(i=b(c);i>0;i--)
{
d=d*i;
}
return(d);
}
int b(int y)
{
y=y*y;
return(y);
}
本题的目的是计算2的平方阶乘 加上3的平方阶乘,初次学习,实在没想清楚我错在哪了,希望大神指点指点,谢谢 没看懂你写的代码,我这里重写了一个逻辑比较清晰的,你可以看看:
# include <stdio.h>
int func(int n)
{
int tmp = n * n, sum = 1;
for (int i = 2; i <= tmp; i++)
{
sum *= i;
}
return sum;
}
int main()
{
printf("%d", func(2) + func(3));
return 0;
} qiuyouzhi 发表于 2021-1-9 14:35
没看懂你写的代码,我这里重写了一个逻辑比较清晰的,你可以看看:
我的代码的意思是运用函数的嵌套,int b是求一个数的平方,int a是求一个数的阶乘,不知道这样解释你能明白了没{:5_96:},我感觉我求平方和阶乘的阶乘的函数都没有写错哎,不知道为什么这个代码最终运行结果是2而不是4*3*2*1+9*8*7.。。。*1 阿Cxi 发表于 2021-1-9 14:44
我的代码的意思是运用函数的嵌套,int b是求一个数的平方,int a是求一个数的阶乘,不知道这样解释你能明 ...
噢,发现问题了
看你的a函数,c是哪里来的?改成b(x)就好了
顺便说下,函数声明通常是在全局里面声明 #include <stdio.h>
int main(void)
{
int a , b , i ;
for(a = i = 1 ; i < 2 * 2 + 1 ; i ++) a = a * i ; // 计算 2 的平方的阶乘
for(b = i = 1 ; i < 3 * 3 + 1 ; i ++) b = b * i ; // 计算 3 的平方的阶乘
printf("%d\n" , a + b) ;
}
页:
[1]