为什么变得程序运行错误

Simple_Z 2011-03-28 07:33:37
我用C语言编了个程序如下:
#include<stdio.h>
main()
{
int a,b;
printf("please input two count\n");
scanf("%d%d",&a,&b);
printf("%d",pow(a,b));
}
为什么我输入任何两个数,结果都是0?
求高手指教!!!
...全文
101 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wizard_tiger 2011-03-30
  • 打赏
  • 举报
回复
函数名称: pow
函数原型: double pow(double x,double y);
函数功能: 计算以x为底数的y次幂,即计算x^y的值.
函数返回: 计算结果
参数说明: x-底数,y-幂数
所属文件: <math.h>

所以这个返回值不应用%d而改成%lf就可以了。
lx3275852 2011-03-30
  • 打赏
  • 举报
回复
都什么解释呀。。。。。
最关键的是:printf("%d",pow(a,b));
改成printf("%lf",pow(a,b)); 就行了。。。。
c语言中会做隐式类型转换。。

楼主既然能运行成功,那么他的编译器不用#include <math.h>(原因是有些c++编译器会根据需要自动添加)



luohaohahaha 2011-03-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 justkk 的回复:]
#include <math.h>

把a、b定义为double类型
[/Quote]

a,b不能定义为double 型,如果定义为double ,输入很小的数字时,编译器会按0处理的,必须要定义为float型。
4楼正解!
Johnxme126 2011-03-28
  • 打赏
  • 举报
回复
pow返回double
改成%f或者%lf
masmaster 2011-03-28
  • 打赏
  • 举报
回复

#include <stdio.h>

int main (void) {

float a,b;
scanf ("%f%f",&a,&b);
printf ("%f\n",pow(a,b));
return 0;

}


pow函数原型:extern float pow(float x, float y);
linux_ljm 2011-03-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 justkk 的回复:]

#include <math.h>

把a、b定义为double类型
[/Quote]
++
hzc543806053 2011-03-28
  • 打赏
  • 举报
回复
加1个 #include<math.h> 数学函数
justkk 2011-03-28
  • 打赏
  • 举报
回复
#include <math.h>

把a、b定义为double类型

69,371

社区成员

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

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