int fun(int x)//阶乘函数
{
long sum=1
for(int i=1i<=xi++)
sum*=x
return sum
}
int main()
{
int n
long sum=0,s
scanf("%d",&n)
for(int i=1i<=ni++)
{
if(i%2!=0)//奇数判断
s=fun(i)//调用函数
sum+=s//奇数阶乘累加
}
printf("%ld",sum)
return 0
}
不明白你问的问题:奇数的阶乘只是和其他阶乘有一点不同:就是要先判断这个数是不是奇数,是就计算它的阶乘,不是就不算了;#include <stdio.h>void main(){ int n,ilong ss=1printf("请输入一个正整数:\n")scanf("%d",&n)if(n<0) { printf("你输入的不是正整数,输入错误!\n") return} if(n%2==0) { printf("嘿嘿,%d不是奇数,可以偷懒不用算它的阶乘了!\n",n) return} for(i=1i<=ni++) s=s*iprintf("呵呵,%d是奇数呢,它的阶乘是%ld.\n",n,s)}如果你只要求的是比一个数小的所有奇数的阶乘的话,那更简单那!#include <stdio.h>void main(){ int n,ilong ss=1printf("请输入一个正整数:\n")scanf("%d",&n)if(n<0) { printf("你输入的不是正整数,输入错误!\n") return} for(i=1i<=ni=i+2) s=s*iprintf("呵呵,%d它的奇数阶乘是%ld.\n",n,s)}for(c=1,j=1j<=aj++){
c=c*j
d=(-1)*b/c
}
d=d*(-1)
把上面改为:
for(c=1,j=1,n=0j<=aj++)
{
c=c*j
d=*b/c*pow(-1,n++)//自己再定义个n,
}
你写的那个D始终为正;