一个超简单问题,怎么求x的y次方?我用pow出错(一定给分)

时间:2021-09-19 08:58:07
在TC++3.0中输入:

#include "math.h"
void main()
{
printf("%d\n",pow(3,2));
}

出错信息:
pow: DOMAIN error
计算的结果也不对。
我在TC2.0里没有显示出错信息但结果也不对。

5 个解决方案

#1


改为如下:
#include<stdio.h>
#include<math.h>
void main()
{
printf("%d\n",int(pow(3,2)));
//或者printf("%lf\n",pow(3,2));
//知道为什么了吧,double pow(double,double)才是函数原型
}

#2


应该不是这个原因
选择
Options
Advanced Code Generation
Float Point
选择Emulation或其他,但不要选None

#3


自己做一个,
int power(int base, int exponent)
{
int result = base;
if (exponent == 0) return (int)1;
if (exponent < 0) return (int)0;
while (--exponent) result *= base;
return result;
}

#4


tjuwx(wangxin) 说得对!

#5


多谢大家! 

#1


改为如下:
#include<stdio.h>
#include<math.h>
void main()
{
printf("%d\n",int(pow(3,2)));
//或者printf("%lf\n",pow(3,2));
//知道为什么了吧,double pow(double,double)才是函数原型
}

#2


应该不是这个原因
选择
Options
Advanced Code Generation
Float Point
选择Emulation或其他,但不要选None

#3


自己做一个,
int power(int base, int exponent)
{
int result = base;
if (exponent == 0) return (int)1;
if (exponent < 0) return (int)0;
while (--exponent) result *= base;
return result;
}

#4


tjuwx(wangxin) 说得对!

#5


多谢大家!