c菜鸟i 发表于 2020-12-9 20:33:27

求正整数n 的阶乘n!

求正整数n 的阶乘n!,其中 n 由用户输入。用do-while 语句实现。
#include<stdio.h>
main()
{
int i,n,y=1;
printf(" n = ");
scanf("%d",&n);
if(n=0) y= 1;      //单独运算n=0时
i++;
else if (n>0)
i=1;
do
{
y = y*i;i=i+1;}
while (i<=n);

printf("n! = %d",y);
   return 0;
        }
为什么我用了if语句嵌套后,do-while语句好像不执行了,输出总为1

风过无痕1989 发表于 2020-12-9 20:53:29

#include<stdio.h>
main()
{
    int i = 1, n, y = 1;
    printf(" n = ");
    scanf("%d",&n);
    do
    {
      y *= i;
      i++;
    }
    while (i <= n);

    printf("n! = %d",y);
   return 0;
}

风过无痕1989 发表于 2020-12-9 21:01:48

这个题不需要判断,只要循环就能完成耱阶乘
当 i = 1 时,y = y * i = 1 * 1 = 1
当 i = 2 时,y = y * i = 1 * 1 * 2 = 1 * 2 = 2
当 i = 3 时,y = y * i = 1 * 1 * 2 * 3 = 1 * 2 * 3 = 2 * 3 = 6
。 。 。

rookie22 发表于 2020-12-10 00:03:28

#include<stdio.h>
int main()
{
        int i,n,result=1;
        printf("请输入n");
        scanf("%d",&n);
        for(i=1;i<=n;i++)
       {
               result*=n;
               n=n-1;
       }
       printf("%d的阶乘是%d",n,result);
       return 0;
}




你可以用for

c菜鸟i 发表于 2020-12-13 18:43:20

rookie22 发表于 2020-12-10 00:03
#include
int main()
{


好的,谢谢{:10_256:}
页: [1]
查看完整版本: 求正整数n 的阶乘n!