Input problem when using user-defined functions.

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;

}