| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1982 人关注过本帖
标题:double 和 int转换的问题,和打印时%lf和%d出现的问题,求解!
只看楼主 加入收藏
秦时的明月夜
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:13
帖 子:126
专家分:504
注 册:2013-3-12
结帖率:91.67%
收藏
 问题点数:0 回复次数:5 
double 和 int转换的问题,和打印时%lf和%d出现的问题,求解!
程序如下

#include<stdio.h>
#include<math.h>
//各位数字的立方和等于它本身的数
void f(int x)
{int a,b,y=0;
a=x;
do{b=x%10;
    y=y+(int)pow(b,3);
    x=x/10;
}while(x>0);
if(y==a)
printf("%lf ",y);
return;
}
//主函数
int main()
{int i,m,n,y;
printf("enter m n:");
scanf("%d%d",&m,&n);
for(i=m;i<=n;i++)
 f(i);
return 0;
}
[b]//将lf换成d时输出的结果正确,但是把int转换去掉,用lf输出为什么打印的都是0.0000000,pow不是double类型么,这个运算过程是什么?
如果精度问题?那也不至于全部为0.000


[ 本帖最后由 秦时的明月夜 于 2013-4-24 23:07 编辑 ]
搜索更多相关主题的帖子: include double return 
2013-04-24 21:36
Fi3_h
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-2-14
收藏
得分:0 
你声明的 y 是 int 类型的
2013-04-24 22:03
tremere
Rank: 6Rank: 6
来 自:火星
等 级:侠之大者
帖 子:223
专家分:432
注 册:2013-3-11
收藏
得分:0 
你定义的y是整型啊。。。那你怎么用%lf ?

极品菜鸟,来学习啦,啦啦啦啦啦啦啦。。。
2013-04-24 22:07
秦时的明月夜
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:13
帖 子:126
专家分:504
注 册:2013-3-12
收藏
得分:0 
回复 3楼 tremere
那结果为什么都是0.0000这个数呢?那如果是double 输出%d呢?
2013-04-24 23:06
czzdcn123
Rank: 7Rank: 7Rank: 7
来 自:江西
等 级:黑侠
威 望:3
帖 子:258
专家分:510
注 册:2013-3-7
收藏
得分:0 
double型输出格式是lf%   
y=y+(int)pow(b,3);  你将pow(b,3)的结果强制转化成整型了输出结果肯定用整型的格式了
2013-04-24 23:34
子弹上膛
Rank: 1
等 级:新手上路
帖 子:22
专家分:4
注 册:2012-12-5
收藏
得分:0 
定义的y是int型  int的输出格式是d  float的输出格式是f  double的输出格式是lf  这个都不能相互替换
2013-04-25 09:19
快速回复:double 和 int转换的问题,和打印时%lf和%d出现的问题,求解!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015872 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved