C语言的编程题目,求改错。

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。

sum=0后面没有加分号,第二个问题使用递归实现较多,也可以使用循环,递减相乘,我这还有一分钟就停电了,明天再给你写,谢谢
int fact(int n)
{
if(n<=1)
{
return 1;
}
else
{
return n*fact(n-1);
}

}
已补足完毕,如果对你有用,请采纳,谢谢追问

第一个问题是对了,可是第二个问题不行,显示编译结束但存在,是什么情况?

追答

#include
int fact(int n)
{
if(n<=0)
{
return 1;
}
else
{
return n*fact(n-1);
}
}
void main()
{
printf("%d\n",fact(3));

}
这是我测试的这个函数,没有问题,你使用计算除法的时候,转换为double类型就好,谢谢,还有你的话我没有看懂,如果对你有帮助,请采纳,谢谢!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-02
首先你这样写只能得到 个位上的数字 十位上的数字完全不对应该这样写
千位上的数字
D=(X/1000+9)%10;
百位上的数字
C=((x-d*1000)/100+9)%10;
十位上的数字
b=((x-D*1000-C*100)/10+9)%10;
个位数
a=(x%10+9)%10;
第2个回答  2012-04-02
c等式与d等式字母写成大写了
相似回答