c语言编程 计算 1-1/2+1/3-........-1/100 为什么最后的结果是错的,请高手

c语言编程计算1-1/2+1/3-........-1/100为什么最后的结果是错的,请高手#include<stdio.h>intmain(){intn;floatsu... c语言编程
计算
1-1/2+1/3-........-1/100
为什么最后的结果是错的,请高手#include<stdio.h>
int main()
{
int n;
float sum=0.0;
for(n=1;n<=100;n++)
{
if(n%2==0)
sum=sum+1/n;
else
sum=sum-1/n;
}
printf("sum=%f",sum);
return 0;
展开
 我来答
nigoole
推荐于2017-12-15 · TA获得超过1369个赞
知道小有建树答主
回答量:675
采纳率:71%
帮助的人:442万
展开全部

你的1/n默认是一个整数计算,结果都等于0,你需要将起转换成dobule类型才可以进小数计算

if (0 == n % 2) {
    sum += 1.0 / n;
} else {
    sum -= 1.0 / n;
}
追问
为什么要把1/n改成1.0呢
追答
因为你的数据都是计算的分数,如果是1/n的话结果肯定等于0,如果是1.0的话是按照浮点数进行计算的,或者你(double) 1 /n也可以,但是明显用1.0省事
CrazyMax3000
2021-07-14
知道答主
回答量:18
采纳率:0%
帮助的人:1.1万
展开全部

# include <stdio.h> //标准库

double main() {

// 1-1/2 + 1/3 ... -1/100

int i = 1, flag = 1;

double sum = 0;

while (i <= 100) {

sum += 1.0 * flag / i;

i += 1;

flag *= -1;

}

printf("%.5f", sum);

return sum;

}


已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式