用double为什么出错,而把double换成float就运算准确。请说明

如题所述

第1个回答  2017-03-08
&是取址运算,你如果使用double,则得到double*型值,而你格式控制是%f,即控制为float*,两个指针类型不一致,除了void*可以被其他指针类型的值赋值外,其他任何指针类型除非同类或者基类指向派生类的情况外,都是不可以的。
相要输入double,你应该:
f是浮点数,lf是双精度浮点数。本回答被提问者和网友采纳
第2个回答  2017-03-08
把scanf("%f %f",&x,&y);改成scanf("%lf%lf",&x,&y);