c语言输入一个数,求1到这个数阶乘的和

我改了好多次代码都不行,帮我改改怎么变成输入一个数,求1到这个数阶乘的和,我只会做到输入那个数的阶乘#include"stdio.h"#include"stdlib.h"... 我改了好多次代码都不行,帮我改改怎么变成输入一个数,求1到这个数阶乘的和,我只会做到输入那个数的阶乘
#include "stdio.h"
#include "stdlib.h"
void main()
{
while(1)
{
int d;
printf("请输入数字计算阶乘。输入0退出程序:");
scanf("%d",&d);
if(d==0)
exit(0);
else
{
int fact=1;
int i;
for(i=1;i<=d;i++)
fact*=i;
printf("%d的阶乘:%d\n",d,fact);
}
}
}
展开
 我来答
听不清啊
高粉答主

2017-01-04 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部

#include "stdio.h"

#include "stdlib.h" 

  main()

{    

while(1)    

{

int d;        

printf("请输入数字计算阶乘。输入0退出程序:");        

scanf("%d",&d);        

if(d==0)            

exit(0);        

else        

{            

int fact=1,s=1;            

int i;     

printf("s=1");       

for(i=2;i<=d;i++) 

{           

fact*=i;

s+=fact;

printf("+%d",fact);

}            

printf("=%d\n",s);

}

}

}

追问
麻烦在帮我加入一个条件,判断输入的整数是不是奇数不是要求重新输入
追答

#include "stdio.h"

#include "stdlib.h" 

  main()

{    

while(1)    

{

int d=0;        

while(d%2==0){

printf("请输入一个奇数计算阶乘和。输入0退出程序:");        

scanf("%d",&d);        

if(d==0) exit(0);        

}

int fact=1,s=1;            

int i;     

printf("s=1");       

for(i=2;i<=d;i++) 

{           

fact*=i;

s+=fact;

printf("+%d",fact);

}            

printf("=%d\n",s);

}

}

来自:求助得到的回答
GTA小鸡
高粉答主

2017-01-04 · 醉心答题,欢迎关注
知道大有可为答主
回答量:2.6万
采纳率:78%
帮助的人:1.3亿
展开全部
#include "stdio.h"
#include "stdlib.h" 
void main()
{    
while(1)    
{
int d;        
printf("请输入数字计算阶乘。输入0退出程序:");        
scanf("%d",&d);        
if(d==0)            
exit(0);        
else        
{            
int fact;            
int i,j;
int sum=0;            
for(i=1;i<=d;i++)
{
   for(j=1,fact=1;j<=i;j++)            
fact*=j;
   sum+=fact;
}            
printf("%d的阶乘:%d\n",d,sum);
}
}
}
追问
麻烦在帮我加入一个条件,判断输入的整数是不是奇数不是要求重新输入
追答
#include "stdio.h"
#include "stdlib.h" 
void main()
{    
    while(1)    
{
    int d;        
    do
    {
       printf("请输入奇数计算阶乘。输入0退出程序:");
       scanf("%d",&d);
    }while(!(d%2)&&d);        
    scanf("%d",&d);        
    if(d==0)            
    exit(0);        
    else        
    {            
    int fact;            
    int i,j;
    int sum=0;            
    for(i=1;i<=d;i++)
    {
       for(j=1,fact=1;j<=i;j++)            
        fact*=j;
       sum+=fact;
    }            
    printf("%d的阶乘:%d\n",d,sum);
    }
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式