使用printf不一致

zxp*_*nce 5 c function sqrt

我在GNU GCC编译器中使用Code Block.我正在尝试这个代码

int number,temp;

printf("Enter a number :");
scanf("%d",&number);
temp = sqrt(number);
printf("\n%d",sqrt(number)); //print 987388755 -- > wrong result
printf("\n%d",temp); //print 3 -- > write result

return 0;
Run Code Online (Sandbox Code Playgroud)

并且在此代码中有输入值10的结果

987388755  
3
Run Code Online (Sandbox Code Playgroud)

这段代码有什么问题?

cod*_*ict 10

sqrt 返回一个双:

double sqrt(double x);
Run Code Online (Sandbox Code Playgroud)

你需要:

printf("\n%g",sqrt(number));
Run Code Online (Sandbox Code Playgroud)


P.P*_*.P. 6

printf()调用中使用不正确的格式说明符Undefined Behaviour.sqrt()返回double,但你使用%d.