如何正确打印函数调用?

时间:2012-10-21 14:30:18

标签: c

它出现为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;
}

我已经尝试过以下内容。另外,我应该将函数的返回类型设为double,但不确定如何。

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;
}

2 个答案:

答案 0 :(得分:1)

我不知道,它对我来说非常好。

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

#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

请启用编译器警告,它们非常有用,您应该仔细阅读它们。

答案 1 :(得分:0)

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