很疑惑,求解答,来看看吧。

loop9这题,第一部分求5050我改对了,下面的我怎么做都不对,编译运行不出结果,只有5050这一个结果。应该怎么改呀,我不会...

img

题目中没有改变过n的值,所以while(n>1)是个死循环,程序就会一直执行
执行前n=10, (而且10 ! = 10x9x8x7x6x5x4x3x2x1)。只要让p=1, while每次循环n-1,就能让p依次乘以9到2。也就能得到10!。
int p = 1;
while (n > 1)
{ p *= n;
n--;
}

printf("%d\n", p);