I'm scratching my head over this one. My input for feet is always recorded as 0 when I print within the calc() function, but it is correct when printed in the main() function. What's going on?

Code:
#include <stdio.h>

float input (void)
{
    float x;

    scanf("%f", &x);
    getchar();

    return x;
}

float calc ()
{
    float y, feet, inches;

    y = 30.48 * feet + 30.48 * (inches / 12);

    printf("%f and %f", feet, inches);
    printf("%f", y);

    return y;
}

void output ()
{
    int meters;
    float centimeters;

    printf("\nThe value is equivalent to %d meters and %.2f centimeters.", meters, centimeters);
}

int main (void)
{
    int meters;
    float feet, inches, metric, centimeters;
    char ans;

    printf("This program converts a length in feet and inches into meters and centimeters.\n");

do
{
    printf("Insert length in feet: ");
    feet = input ();
    printf("Insert length in inches: ");
    inches = input ();

    metric = calc (feet, inches);

    meters = metric / 100;
    centimeters = (metric - meters) * 100;

    output (meters, centimeters);

    printf("\nWould you like to try again? [Y/N]");
    scanf("%c", &ans);
    getchar();

} while (ans == 'y' || ans == 'Y');

    return 0;
}