2012-10-21 75 views
0

它出来为0.0。我希望它以非0的数字出现,除非输入的数字当然是0。我尝试了几件事情。这是当前的代码。如何正确打印函数调用?

#include <stdio.h>          /* Necessary header */ 
#include <stdlib.h> 


int main() 
{ 
    double Initial; 
    double Post; 

    printf("Enter a number with a decimal: "); 
    scanf("%lf", &Initial); 
    printf("Enter another number using the same format: "); 
    scanf("%lf", &Post); 

    ComputeMinimum(Initial, Post); 
    ComputeMaximum(Initial, Post); 

    printf("Of %1.1lf and %1.1lf ", Initial, Post); 
    printf("the minimum is %1.1lf ", ComputeMinimum(Initial, Post)); 
    printf("and the maximum is %1.1lf.", ComputeMaximum(Initial, Post)); 

    return 0; 
} 

    double ComputeMaximum(double B, double A) 
{ 
    return (A > B) ? A : B; 
} 

double ComputeMinimum(double a, double b) 
{ 
    return (a < b) ? a : b; 
} 

我已经试过以下。此外,我应该使功能的返回类型加倍,不知道如何。

int main() 
{ 
    double Initial; 
    double Post; 

    printf("Enter a number with a decimal: "); 
    scanf("%lf", &Initial); 
    printf("Enter another number using the same format: "); 
    scanf("%lf", &Post); 

    double minimum = ComputeMinimum(Initial, Post); 
    double maximum = ComputeMaximum(Initial, Post); 

    printf("Of %1.1lf and %1.1lf ", Initial, Post); 
    printf("the minimum is %1.1lf ", minimum); 
    printf("and the maximum is %1.1lf.", maximum); 

    return 0; 
} 
+0

对于我[Ideone](http://ideone.com/EMhNhR)上的作品,在将这些功能添加到文件头部之后 - 当然。 (不要忘记在那里检查时用“新输入上传”) – amit

+0

谢谢大家。 – user1728737

+0

如果你喜欢答案,你可以随时投票;-) –

回答

1

我不知道,它对我来说工作得很好。

你应该之前主要添加函数声明,所以它得到:

#include <stdio.h>          /* Necessary header */ 
#include <stdlib.h> 

double ComputeMinimum(double a, double b); 
double ComputeMaximum(double a, double b); 

int main() 
{ 
.... 

至于你的下一个问题,这些函数的返回类型为double,所以你不要有任何改变。问题是没有函数原型,编译器不知道它会是double,所以它假定为int

请启用编译器警告,他们真的很有帮助,你应该经常仔细阅读。

+0

是的,这是头......我有警告,他们只是太神秘而无法理解。 – user1728737

+0

你在Windows或Linux上编译?如果在linux上,尝试找到“clang”并用“cland yourfile.c”编译 - 它会给你几乎图形化的输出,说“错误在这里”;-)无论如何,尝试读入这些编译器消息,它们会为你节省很多麻烦! –

0

对于我来说,它也可以工作,即上面的程序中,您将输出的最大值和最小值都记为双倍。我认为上面提到的声明原型也是正确的,或者你可以直接将这两个函数的定义放在主程序之上,那么在这种情况下你甚至不需要原型,因为它可以作为编译器的原型