input 2 => output 8.000000 (%lf)
input 2 => output -79298408094324 ... .000000 (%f)
#include <stdio.h>
#include <conio.h>
double cube(double value);
int main(void)
{
double number;
scanf("%lf", &number); // %f
printf("%f", cube(number));
_getch();
return 0;
}
double cube(double value)
{
return value * value * value;
}
Почему если считывать число как long double, то результат получается нормальным,
input 2 => output 8.000000 (%lf)
%lf
-- это не long double, а просто double. %f
-- это float, а long double -- это %Lf
. См. man scanf.