#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)才是函数原型
}
#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
选择
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;
}
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)才是函数原型
}
#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
选择
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;
}
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
多谢大家!