繁体   English   中英

如何正确打印函数调用?

[英]How can I properly print the function call?

结果为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;
}

我不知道,它对我来说很好用。

您应该在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

请启用编译器警告,它们确实有用,您应该始终仔细阅读它们。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM