| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 659 人关注过本帖
标题:整数用 pow
只看楼主 加入收藏
QZMP
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2014-4-20
收藏
 问题点数:0 回复次数:8 
整数用 pow
int main()
{
    int a,b,c;
    scanf("%d %d",&a,&b);
    c=(int)pow((double)a,b);
    printf("%d",c);
}
这段代码是求两整数a的b次方,并将结果c转为int型输出,但像求5的平方输出结果是24,三次方是124,而其他的数好像都正确,这是什么原因
搜索更多相关主题的帖子: double 
2014-05-01 22:54
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
自已写一个p0w  不使用库函数

DO IT YOURSELF !
2014-05-01 23:22
kwxx
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:309
专家分:913
注 册:2009-5-11
收藏
得分:0 
怎么会呢?我这里运行没问题。
2014-05-02 07:45
QZMP
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2014-4-20
收藏
得分:0 
回复 3 楼 kwxx
但我电脑运行结果就是那样,搞不清为什么
2014-05-02 16:27
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
還沒想到自己求解的辦法嗎?學會自己想辦法,勝於別人直接告訴你原因。

授人以渔,不授人以鱼。
2014-05-03 10:32
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
求助的時候,把使用的環境(平臺)、編譯器、事實(截圖)提供出來,才有真相、有答案,這是基本的交流原則。你明明看到有人說沒碰到這個現象,你說有,就把事實擺出來呀,不讓人看到現場,卻總問為什麽,這到底是為什麽?

授人以渔,不授人以鱼。
2014-05-03 11:07
那时年少
Rank: 1
等 级:新手上路
帖 子:13
专家分:5
注 册:2014-3-9
收藏
得分:0 
应该没问题才对
#include<stdio.h>
#include<math.h>
main()
{
    int a, b, c;
    scanf("%d%d", &a, &b);
    c    = (int)pow(a,b);
    printf("%d\n", c);
}
试试这个,我以前就是这么写的,没问题
可能是你前面定义了a为int,pow里面又用了double
层主表示刚学c语言,为什么会这样我也不是很清楚
2014-05-03 13:09
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
這種就是沒事玩代碼。編譯的時候,沒看見編譯器警告你把double型強制解釋成int型有可能丢失精度嗎?為什麽非要把double的結果轉成int給c?c不用int行不行?這些都不去想,就轉來轉去,不是玩代碼是什麽,都不是根據實際需要寫的,純粹是校園應試代碼。

授人以渔,不授人以鱼。
2014-05-03 13:22
top398
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:427
专家分:857
注 册:2014-5-2
收藏
得分:0 
撸主似乎是因为精度误差造成问题的。浮点数(即使双精度或更高)并不能准确表达某些整数,只是一个近似值。可以这样:
printf("%f\n",round(pow((double)a,b)+0.000005));
或:
printf("%d\n",(int)(pow((double)a,b)+0.000005));
不同编译器可能选择了不同的舍入方式,有些可以无需这样处理。
2014-05-03 14:15
快速回复:整数用 pow
数据加载中...
 
   



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

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