1输入一个正整数n,计算1-1/4+1/7-1/10+1/13-1/16+…的前n 项之和,输出时保留3位小数。
#include <stdio.h>
int main(void)
{
int denominator,flag,i,n;
double item,sum;
printf("Enter n:\t");
scanf("%d",&n);
flag=1;
denominator=1;
sum=0
for (i=1;i<=n;i++){
item=flag*1.0/denominator;
sum=sum+item;
flag=-flag;
denominator=denominator+3;
}
printf("sum=%.3f\n",sum);
return 0;
}
还有一道题
2.根据下列公式可以计算出从n 个不同元素中取出m 个元素(m≤n)的组合数。编写程序,输入2 个正整数m 和n(m≤n),计算并输出组合数。要求定义和调用函数fact(n)计算n!,函数类型为double。
第一个问题是对了,可是第二个问题不行,显示编译结束但存在,是什么情况?
追答#include
int fact(int n)
{
if(n<=0)
{
return 1;
}
else
{
return n*fact(n-1);
}
}
void main()
{
printf("%d\n",fact(3));
}
这是我测试的这个函数,没有问题,你使用计算除法的时候,转换为double类型就好,谢谢,还有你的话我没有看懂,如果对你有帮助,请采纳,谢谢!