排列计算
#include <stdio.h>
void main()
{
int n,m,v,t=1,a=1,b,c,f,e;
printf("排列计算程序\n");
printf("请输入上标和下标:\n");
scanf("%d\n,%d\n",&n,&m);
if(m<n)
{
c=n;
for(b=1;b<=c;b++)
{
t=t*b;
}
printf("结果为:%d\n",t);
f=m;
for(e=f;e<=f && e>0;e--)
{
a=a*e;
}
printf("结果为:%d\n",a);
v=t/a;
printf("结果为:%d\n",v);
}
else
printf("输入错误,请重新输入");
}
求助大神,不懂为什么红色那一段为什么会算得1啊?
大神万岁 大神最帅{:10_254:} 谢谢了 用scanf输入的时候尽量不要用逗号,很容易在实际输入的时候将m的值传成你想要的%d的值
直接这样写
scanf("%d\n%d\n",&n,&m); 这个我以后尽量避免,但是红色那一段不懂它怎么算都是等于1,不太懂,大神能否解释一下呢{:10_254:} f=m;
printf("m=%d",m);
for(e=f;e<=f && e>0;e--)
{
a=a*e;
}
printf("结果为:%d\n",a);
----打印出m的值,发现一直都是0, 应该是scanf的时候没传进去。e=m; for语句没有执行(e>0不成立)。 fwinmachao 发表于 2017-10-31 17:29
f=m;
printf("m=%d",m);
for(e=f;e0;e--)
#include <stdio.h>
void main()
{
int n,m,v,t=1,a=1,b,c,f,e;
printf("排列计算程序\n");
printf("请输入下标:\n");
scanf("%d",&n);
printf("请输入上标:\n");
scanf("%d",&m);
if(m<n)
{
c=n;
for(b=1;b<=c;b++)
{
t=t*b;
}
f=m;
for(e=f;e<=f && e>0;e--)
{
a=a*e;
}
v=t/a;
printf("结果为:%d\n",v);
}
else
printf("输入错误,请重新输入\n");
}
改了哦 这是正确答案
页:
[1]