所以我的问题涉及到double,我试图从用户的小数点获取任何值的输入,其指数也在小数点,以在另一个函数中计算后显示结果,其中变量将值传递为double并且我也使用了双倍输出,但最终结果是1.00000,即使我已将输出说明符用作%lf%。
#include <stdio.h>
double pwra (double, double);
int main()
{
double number, power, xx;
printf("Enter Number: ");
scanf("%lf", &number);
printf("Enter Number: ");
scanf("%lf", &power);
xx=pwra (number,power);
printf("Result: %lf", xx);
return 0;
}
double pwra (double num, double pwr)
{
int count;
int result = 1;
for(count=1;count<=pwr;count++)
{
result = result*num;
}
return result;
}
答案 0 :(得分:1)
您在result
函数中使用了错误的pwrs()
类型。
变化:
int result = 1;
为:
double result = 1.0;
请注意,如果您学习使用调试器,则很容易识别出这种类型的简单错误。进一步阅读:How to debug small programs。
另请注意,pwr
应为int
,而不是double
,因为您的函数仅适用于整数指数。