Переместите объявление square()
из функции и убедитесь, что прототип соответствует:
float square(float b); // Make sure this matches the definition.
int main()
{
float a,y;
scanf("%f", &a);
y = square( a );
printf("%f %f ",a ,y);
}
float square(float b)
{
float z;
z = b*b;
printf("%f %f",z ,b);
return(z);
}
Что касается того, почему он "работал" для int
, вам придется показать намТочный код, который вы использовали для этого случая.