注册 登录
编程论坛 C语言论坛

阶乘不知道是不是最后一步出错了

qiqicai 发布于 2021-04-07 20:08, 1379 次点击
#include<stdio.h>
int main()
{
int i,n,jc;
printf("输入一个数:");
scanf("%d",&n);
if(n<0)                                  这个实现不了阶乘 不知道为什么始终是一
printf("error,负数没有阶乘");
else if(n=0)
printf("输出阶乘为0");
else
for(i=1;i<=n;i++);
{
jc=jc*i;
}
printf("阶乘为%d",jc);
return 0;




}
   

   
   
   
   
   
   
   
   
   
   
 
4 回复
#2
zbjzbj2021-04-07 20:22
#include<stdio.h>
int main()
{
    int i,n,jc=1;
    printf("输入一个数:");
    scanf("%d",&n);
    if(n<0)                                 // 这个实现不了阶乘 不知道为什么始终是一
        printf("error,负数没有阶乘");
    else if(n==0)
        printf("输出阶乘为0");
    else
        for(i=1; i<=n; i++)
        {
            jc=jc*i;
        }
    printf("阶乘为%d",jc);
    return 0;

}
#3
夏天q2021-04-07 20:48
程序代码:
#include<stdio.h>
int main()
{
    int i,n;
    long long jc = 1;
    printf("输入一个数:");
    scanf("%d",&n);
    if(n<0)
        printf("error,负数没有阶乘");
    else if(n==0)
        printf("输出阶乘为0");
    else
    {
        for(i=1; i<=n; i++) {
            jc=jc*i;
        }
        printf("阶乘为%d",jc);
    }
    return 0;

}
#4
qiqicai2021-04-10 17:45
回复 3楼 夏天q
#include<stdio.h>
int main()
{                                                                          {
int i,n,jc=1;
printf("输入一个数:");
scanf("%d",&n);
if(n<0)                                //这个实现不了阶乘 不知道为什么始终是一
  printf("error,负数没有阶乘");
else if(n==0)
  printf("输出阶乘为0");
else
{
for(i=1;i<=n;i++);
{
jc=jc*i;
}
printf("阶乘为%d",jc);
}
return 0;

}

这是我照着你的代码写的但不知道为什么不对


但我要是直接复制你的代码的话有对了  你能再帮我看看嘛
#5
夏天q2021-04-10 18:41
int main()
{                                                                          {
int i,n,jc=1;

这里多出来一个{
for(i=1;i<=n;i++);
{
jc=jc*i;
}

这里for后面是分号,语句结束并没有进入
{
jc=jc*i;
}

表达式

程序代码:
#include<stdio.h>
int main()
{                                                                          
int i,n,jc=1;
printf("输入一个数:");
scanf("%d",&n);
if(n<0)                                //这个实现不了阶乘 不知道为什么始终是一
  printf("error,负数没有阶乘");
else if(n==0)
  printf("输出阶乘为0");
else
{
for(i=1;i<=n;i++)
jc=jc*i;
printf("阶乘为%d",jc);
}
return 0;
}


[此贴子已经被作者于2021-4-10 18:56编辑过]

1