我改了好多次代码都不行,帮我改改怎么变成输入一个数,求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);
}
}
}
#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);
}
}
#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);
}
}
}