编写一个计算用来求 x 的 y 次幂的函数:int Pow(int x,int y)。如果x 和 y 的取值较大时,是否能够得到正确的结果,那么应该怎么修改程序以解决?
我写了下列程序,不能解决x,y取值较大时得到正确结果的问题 比如10的10次方输出结果就为1410065408
请问应该如何修改?
#include <stdio.h>
int main()
{
int a,b,ret;
scanf("%d %d",&a,&b);
ret=Pow(a,b);
printf("%d的%d次方为%d",a,b,ret);
}
int Pow(int x,int y)
{
int i,sum=x;
for(i=1;i<y;i++)
x*=sum;
return x;
}
改了之后还是不对 可以写一下吗?
追答修改1:子函数名称:double Pow(int x, int y)
修改2:输出语句:printf("%d的%d次方为%ld",a,b,ret); //换long输出
修改3:参数定义:double ret; //将int换成double来存储更长数据
这样修改以后 输出结果变成了 10的10次方为0
追答int Pow函数是你自己写的,还是用的原本库函数?
追问是自己写的
刚刚找到别的方法解决了 谢谢你