c语言 (目的是求a的阶乘和b的阶乘的和) 哪里有问题
解决时间 2021-01-08 10:12
- 提问者网友:嗿恋仯囡
- 2021-01-08 04:29
#include
int main(void)
{
int a,b,c,d,e;
printf("input正整数:a,b");
scanf("%d,%d",&a,&b);
c=1;
d=1;
for(a=a;a<1;a--)
c=c*a;
for(b=b;b<1;b--)
d=d*b;
e=c+d;
printf("%d",e);
}
最佳答案
- 二级知识专家网友:往事叫我剪短发
- 2021-01-08 05:01
#include
int main(void)
{
int a,b,c,d,e;
printf("input正整数:a,b");
scanf("%d,%d",&a,&b);
c=1;
d=1;
for(;a>0;a--)//a应该是大于0,a=a是多余的
c=c*a;
for(;b>0;b--)//b应该是大于0,b=b是多余的。。
d=d*b;
e=c+d;
printf("%d",e);
}
全部回答
- 1楼网友:神經兮兮
- 2021-01-08 08:25
你试试把for后的两句放在for语句中 因为你的程序当c大于2时 d始终只能得一次值 而不会累加 而且你把应a d定义为长整型
我自己写的中间的你试试 for(i=0;i<11;i )
for(j=i;j>0;j )
s*=j;
sum =s;
其中s sum都是长整型 用手机上回的 简单写了下 希望能看懂 还有你c能语言
另外,团IDC网上有许多产品团购,便宜有口碑
- 2楼网友:清和十五
- 2021-01-08 07:04
for循环条件改为a>=1,b>=1
- 3楼网友:搥噚仟哖
- 2021-01-08 05:33
阶乘的函数写得不对。
你这样的没有跳出的条件的,会无限循环
应该这样写
int fac(int p)
{
if(p==0||p==1)
return 1;
else return p*fac(p-1);
}
}
- 4楼网友:对你在意
- 2021-01-08 05:24
for(a=a;a>1;a--)
c=c*a;
for(b=b;b>1;b--)
d=d*b;
<1 改成 > 1
我要举报