使用自定义函数代替pow函数,scanf输入有点问题。
首先说一下,这个是用来实现用户自定义函数来代替pow函数的程序。程序源码如下:
#include <stdio.h>
void main()
{
double power(double x,double y);
double m,n,c;
scanf("%f,%f",&m,&n);
c = power(m,n);
printf("%f^%f=%f\n",m,n,c);
}
double power(double x,double y)
{
double z=1;
if(y>=0)
{
for(;y!=0;--y)
{
z=z*x;
}
return z;
}
else
{
for(;y!=0;++y)
{
z=z*x;
}
z=1/z;
return z;
}
}
buildexecute后任意输入两个数字,数字间用逗号隔开,回车后无输出结果(没有任何提示)。
如果将
main函数里的,
double m,n,c;
scanf("%f,%f",&m,&n);
修改为:
double m=2.0,n=2.0,c; //不一定是2.0,其他数字也可以。
scanf语句删掉。
就会输出结果。
由于新加入这个论坛,这是发的第一个帖子,不知道发帖具体怎么粘贴图片,请各位将就一下。
望各路大侠指点迷津!
单步调试后发现,输入的两个数字并不会传递到power(m,n),显示仍然是一堆无意义的数字。导致无输出结果 经过百度后,发现,原来是scanf语句如果用%f会导致精度不足,前面的变量都是声明成double型的。这题只要将%f改为%lf就解决了。谢谢大家~
页:
[1]