2016-04-20 60 views
-2

所以我的问题涉及到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; 
} 
+1

欢迎来到StackOverflow,@TryllZ。您会发现,如果您设置了代码格式,以便阅读起来更快,则可以更快地获得更多帮助。另外:你从来没有真的在这里问过一个问题,你只是发表了一个声明。尝试尽可能详细地描述你想要弄清楚什么。 – Richard

+0

好吧,对不起,我的印象是,同样的人会回复我先前的问题,无论如何谢谢你,现在将编辑它.. – TryllZ

+1

这些人可能,但人们(像我一样!)也可能会找到这个问题上网站的首页或通过其他方式。每个问题都应尽可能独立,以确保(a)尽可能广泛地应答潜在的回答者,并且(b)尽可能有助于后面可能有同样问题的其他人。 – Richard

回答

1

您已在pwrs()函数使用了错误的类型result

变化:

int result = 1; 

到:

double result = 1.0; 

注意,这种类型的简单的错误,如果你学习如何使用您的调试器很容易识别。进一步阅读:How to debug small programs

另请注意,pwr应该是int而不是double,因为您的函数只能用于整数指数。

+0

我试过这个,这次结果是双精度值和十进制值,但结果与计算器结果不同。?!,困惑..调试器显示没有错误。 – TryllZ

+0

@TryllZ:调试器没有“显示错误“(除了崩溃) - 你需要学习如何使用它来遍历你的代码,检查变量,从而理解为什么你的代码不能像你期望的那样工作 - 如果你想学习成为一个程序员。 –

+0

主席先生,我知道在鼠标悬停的调试显示在该时间点存储在变量中的值,但Qunicy有调试时的鼠标悬停的事情和有时调试Dev C++ craches .. – TryllZ