为什么return语句不返回float?

时间:2017-09-19 10:05:42

标签: c

我是编程和学习C的新手,来自希尔特自学C.我正在努力创造一个回归正方形的函数。但是当我输入带小数的数字时,它会输出整数。为什么这样做? 我的计划:

    #include <stdio.h>
int get_sqr(void);

void main()
{
    float x;
    x = get_sqr();
    printf("square : %f",x);
    return 0;
}

int get_sqr(void)
{
    float y;
    printf("enter a number : ");
    scanf("%f",&y);
    return y*y; /*returning the square result to assignment argument */
}

1 个答案:

答案 0 :(得分:2)

因为get_sqr()的返回值为int。 虽然return语句中的值是float C,但隐式将其转换为int,因为声明函数返回int

int get_sqr(void)

将该行更改为

float get_sqr(void)

将返回float的完整y*y值。