|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 关于pow函数的一个问题
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
847
人关注过本帖
标题:
关于pow函数的一个问题
只看楼主
加入收藏
beyondlyf
等 级:
新手上路
帖 子:16
专家分:0
注 册:2008-5-8
楼主
收藏
问题点数:0 回复次数:4
关于pow函数的一个问题
#include "math.h"
main()
{int i,n;
double sum;
scanf("%d",&n);
for(i=1,sum=0;i<=n;i++)
sum+=1/i*pow(-1,i+1);
printf("\nsum is %.2f\n",sum);
system("pause");}
这个程序无论我输入什么结果都是1.00,哪里出错了那?
搜索更多相关主题的帖子:
pow
函数
2008-05-08 18:30
举报帖子
使用道具
赠送鲜花
布拉莫斯
来 自:中国太平洋舰队
等 级:
新手上路
帖 子:169
专家分:0
注 册:2007-3-31
第
2
楼
收藏
得分:0
错在 sum+=1/i*pow(-1,i+1); 这一句, ”1/i“ 被编译器视为整型相除,结果为整数, 当i=1时,1/i 结果为 1 , 当后面的i都大于1时, 1/i 结果就变成 0 了, 所以实际上你只能得 i =1 时的结果 ,后面的都因为
pow()结果乘以前面的0而变成0了, 所以,原因不是 pow的问题,。。
你把 ‘1/i’ 改成 “1.0/i” 试试!
真理往往掌握在少数人手中,可现实却是少数服从多数!
2008-05-08 18:36
举报帖子
使用道具
赠送鲜花
beyondlyf
等 级:
新手上路
帖 子:16
专家分:0
注 册:2008-5-8
第
3
楼
收藏
得分:0
按你说的的确可以 ,但是我这么想: 我之前已经定义 sum为double型,那么 sum+=1/i*pow(-1,i+1);中所有变量都要转换为double型再运算,所以1/i可以得到double型,这么想错哪儿了
2008-05-08 18:52
举报帖子
使用道具
赠送鲜花
布拉莫斯
来 自:中国太平洋舰队
等 级:
新手上路
帖 子:169
专家分:0
注 册:2007-3-31
第
4
楼
收藏
得分:0
”1/i“ 编译器是不认同你的想法的,它是不会帮你自动转换的,甚至报错都不会。。。
真理往往掌握在少数人手中,可现实却是少数服从多数!
2008-05-08 21:03
举报帖子
使用道具
赠送鲜花
wslhnsng
等 级:
论坛游民
帖 子:48
专家分:37
注 册:2009-2-20
第
5
楼
收藏
得分:0
楼主是想算{(-1)^(n+1)}/n 这个式子吧 1/i 改成1.0/i就可以了 我运行了下 可以运行出来
2009-11-07 21:01
举报帖子
使用道具
赠送鲜花
5
1/1页
1
快速回复:
关于pow函数的一个问题
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.038766 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved