#include <stdio.h>
long sum(int x,int y);
long fac(int n);
void main(void)
{
long sum(int x,int y);
int a,b;
long c;
printf("请输入两个整数,中间用逗号分隔:");
scanf("%d,%d",&a,&b);
c=sum(a,b);
printf("两个整数阶乘之和为:%ld\n",c);
}
long sum(int x,int y)
{
long fac(int n);
long z1,z2;
z1=fac(x);
z2=fac(y);
return(z1+z2);
}
long fac(int n)
{
long r=1;
int i;
for (i=1;i<=n;i++)
r*=i;
return(r);
}
c语言中求两个整数阶乘之和,sum程序调用fac,z1能够得到z2却一直等于1是怎么回事
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- CSDN专家-sinJack 2021-11-15 19:14关注
没问题吧,z1,z2可以输出看看值为多少。
#include <stdio.h> long sum(int x,int y); long fac(int n); int main() { long sum(int x,int y); int a,b; long c; printf("请输入两个整数,中间用空格分隔:"); scanf("%d%d",&a,&b); c=sum(a,b); printf("两个整数阶乘之和为:%ld\n",c); return 0; } long sum(int x,int y) { long fac(int n); long z1,z2; z1=fac(x); z2=fac(y); printf("z1=%lld\nz2=%lld\n",z1,z2); return(z1+z2); } long fac(int n) { long r=1; int i; for (i=1;i<=n;i++) r*=i; return(r); }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录