c语言输出值为0
发布网友
发布时间:2022-04-29 10:28
我来回答
共3个回答
热心网友
时间:2022-06-26 05:13
#include <math.h>
#include <stdio.h>
#include <conio.h>
int main()//些微int main(),最后return 0;
{
double sum = 0,n=0;//因为最后得到的肯定是小数,所以定义为double类型
int i;//i定义为int
for (i = 1; i <= 40; i++)
{
sum = (pow(-1, ((double)i + 1.0))*(1.0 / i));//将i转换为double进行 运算
n += sum;//这里不是n=sum++;如果写为n=sum++的话,那n每次循环的值是
//sum的值+1;正确的应该是将n的值加上sum的值
}
printf("值为%lf", n);
getch(); //这里引入头文件#include <conio.h>,目的是便于观察结果
return 0;
}
参考一下吧
热心网友
时间:2022-06-26 05:14
(pow(-1, i+1)*(1.0 / i));
pow(x,y)
返回值:x不能为负数且y为小数,或者x为0且y小于等于0,返回幂指数的结果。
你的x=-1了追问y是正整数啊,那请问下大神要(-1)^(i=1)应怎么输入呢?
热心网友
时间:2022-06-26 05:14
#include<math.h>
#include<stdio.h>
main()
{
int sum = 0, i, n;
for (i = 1; i <= 40; i++)
{
sum = (pow(-1, i+1)*(1.0 / i));//您应该在这里修改一下,因为整数型的相除小于1时,为0 的
n = sum++;
}
printf("值为%d,n");
}//望采纳追问还是为0啊,纠结
追答好吧,你那里应该是:
sum=(1.0*(pow(-1,i+1))/(1.0*i))
n+=sum;