首页 > 解决方案 > 如何调用函数

问题描述

我正在尝试调用我创建的函数。这将需要一个 double 然后将它们四舍五入到小数点后两位。

我试图将参数“x”放在“roundnum”的参数中,但这会导致错误。

#include <stdio.h>
#include <math.h>

double roundnum(double x);

int
main(void)
{

    double n;
    int roundedn;
    printf("Enter the number:\n");
    scanf("%lf", &n);

    printf("Rounded %.2f\n", roundnum(n));


    return 0;
}

double
roundnum(double x)
{
    double n;
    int number = (int)(n + .5);
    return number;
}

如果我在 3.145 中扫描,预期的输出应该是 3.15000。

标签: cdecimalrounding

解决方案


我相信在您的函数中roundnum(),您从未将传入参数值分配n给. 所以 x 永远不会被分配并且默认为零。xroundnum()

从逻辑上讲,一旦将 的值x分配给 n ,函数就会起作用:

double
roundnum(double x)
{
    double n;
    n=x;
    int number = (int)(n + .5);
    return number;
}

并简化功能以提高效率:

double
roundnum(double x)
{
    return((int)(x + .5));
}

推荐阅读