新手求助!!请问这个程序到底哪里错了!

TRS丶小黎仔 2014-03-22 05:22:10
求a = 1 - 1/3 + 1/5 - 1/7 + 1/9......直到被除数小于10的-6次方为止 为什么输出结果是
-92559631349317831000000000000000000000000000000000000000000000.000000


# include <stdio.h>

int main(void)
{
int i, j = 0;
double a;

for (i = 1;i <= 1e6;i++)
{
if (i%2 == 0)
continue;
else
j++;
if (j%2 == 0)
a -= 1.0/(double)i;
else
a += 1.0/(double)i;
}
printf("%.6lf\n", a);

return 0;
}
...全文
101 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
百曉生 2014-03-22
  • 打赏
  • 举报
回复
这个for用的不对吧
TRS丶小黎仔 2014-03-22
  • 打赏
  • 举报
回复
引用 3 楼 angel_su 的回复:
编译器应该会警告a没初始化...
额。。。。没有警告额。。。。
angel_su 2014-03-22
  • 打赏
  • 举报
回复
编译器应该会警告a没初始化...
TRS丶小黎仔 2014-03-22
  • 打赏
  • 举报
回复
引用 1 楼 Demon90s 的回复:
没有看里面的循环逻辑。不过10的6次方已经可以让int类型已经溢出了,试试long
用了long 依旧没办法解决 。。。。
Demon90s 2014-03-22
  • 打赏
  • 举报
回复
没有看里面的循环逻辑。不过10的6次方已经可以让int类型已经溢出了,试试long

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧