求助各位这个程序问题在哪?
RT,该程序的目的是输出交错序列 1-2/3+3/5-4/7+5/9-6/11+... 的前N项之和,但我无论如何输出的都是零,这是为什么?#include <stdlib.h>
int main()
{
int i,n;
float k,sum;
scanf("%d",&n);//输入
for(sum=0,i=1,k=0;i<=n;i++)
{
if(i%2!=0){
k=(double)(i/(2i-1));
}else if(i%2==0){
k=(double)((i/(2i-1))*(-1));//判断为奇数偶数
}
sum=sum+k;//求和
printf("%.3f\n",sum);
k=0;
}
} k=(double)(i/(2i-1));
}else if(i%2==0){
k=(double)((i/(2i-1))*(-1));//判断为奇数偶数
其它的先不说,这里的2i 是什么玩意? 编程中都是不认识2i或者ab这种数学中陌生的相乘格式,请在中间加上*
不知道你这怎么通过编译的,前面少了#include <stdio.h>
后面也少了return 0和大括号 BngThea 发表于 2017-11-10 11:50
编程中都是不认识2i或者ab这种数学中陌生的相乘格式,请在中间加上*
不知道你这怎么通过编译的,前面少了# ...
return 0不打没关系吧?include复制时候打掉了 ba21 发表于 2017-11-10 11:21
k=(double)(i/(2i-1));
}else if(i%2==0){
k=(double)((i/(2i-1))*(-1));//判断为奇数偶数...
*号当时打掉了 人形UMP9 发表于 2017-11-10 17:20
return 0不打没关系吧?include复制时候打掉了
强制转换的位置不对,应该先将 i 进行转换再进行计算而不是计算完了再转换,因为
(double)(2/3) == 0
而
(double)2/3 == 0.66666 不说我还真没看出2i来
页:
[1]