目的是求n的阶乘
下面是程序
#include
int main()
{ int n,k;
k=0;
printf("请输入一个n值(注意:必须是整数,)");
scanf("%d",&n);
while (0<=n)
{ k=k*(1/n);
n=--n;
}
printf("结果是:%d\n",n);
return 0;
}
编译没错,但我运行后输入数字就会异常停止,请问这是怎么回事,本人小白一个,求详细的讲解,多谢
首先你的0<=n,就有问题当n=0时,1/0程序会崩溃,分母不能为0,还有就是n>1时,1/n始终为0;
感觉你的那个n有问题,,你自己再看看
首先,你的结果输出的不是n的阶乘;
其次,按你的算法,k是一个int类型的值你却给了它浮点类型的结果,而且你的判断条件里有n=0这个条件
你的式子里又有1/n,你不觉得有点问题吗?
int n = 6,k = 1;
while (n > 1)
{
k *= n * (n - 1);
n -= 2;
}
程序的问题比较多,看一下异常停止的截图呢