用VS2012写的c语言程序,编译没错误,但我执行的时候会停止,求大神帮我看看

目的是求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;

}
编译没错,但我运行后输入数字就会异常停止,请问这是怎么回事,本人小白一个,求详细的讲解,多谢

c

5个回答

首先你的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;
}

程序的问题比较多,看一下异常停止的截图呢

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐