sqrt函数在库中定义的类型是double型,因此计算得到的p,x1,x2应均为double型。\x0d\x0a方法一:\x0d\x0a改为:\x0d\x0a#include "stdio.h"\x0d\x0a#include "math.h"\x0d\x0avoid main()\x0d\x0a{\x0d\x0aint a,b,c;\x0d\x0adouble p,x1,x2;\x0d\x0ascanf("请输入a...
改为:include "stdio.h"include "math.h"void main(){ int a,b,c;double p,x1,x2;scanf("请输入a,b,c的值为%d %d %d",&a,&b,&c);p=sqrt(b*b-4*a*c);x1=(-b+p)/2*a;x2=(-b-p)/2*a;printf("%d,%d",x1,x2);} 方法二:强制类型转换 改为:include "stdio.h"...
aMarcelo Carioca Marcelo Carioca[translate] a取得同事信任 正在翻译,请等待...[translate] aversus Taxol in promoting oral bioavailability of paclitaxel.[translate] aconversion from 'double ' to 'int ', possible loss of data 正在翻译,请等待...[translate]...
因为double占8个字节而int只占2个字节所以转换的时候会出现数据丢失。abs的函数原型是int abs(int x);因此应将abs改为fabs if((fabs(Xnew[i]-X[i]))<0.0001
你应当 改用 double 型。相应的输入输出格式 用 %lf。当然,如果 你的结果 都正确,说明数值范围恰好满足 既无小数,也没超界,那么你可以加上 (int) ...; 例如:sum= (int)( (double)a*0.0315);d= (int) ( (double)a*0.0363 );sum = sum + d;这样就没有警告信息了。
错误就是你在运算过程中把小数转换成了整数。把几个bonus都定义成double类型,最后显示的时候用printf("bonus=%f", bonus);
ano pay no gay 没有薪水没有同性恋者[translate] a義烏金村6幢4單元302 Righteousness babbit metal village 6 4 unit 302[translate] aconversion from 'double' to 'int', possible loss of data 转换从‘双’向‘int’,数据可能损失[translate]
k=sqrt(m);主要是针对这句话说的。m经由sqrt函数开方所得应该是double类型数据,却用int类型的k接着。错误的意思就是double转成int可能会丢失数据精度。可以运行,如果你想避免这个错误的话,把k定义成double类型就可以了。
可以使用强制类型转换 比如 int b,a = 10; double c = 10.12;b = int(c)
这是编译警告,告诉你求平方根的结果是double类型的,你赋给一个int型的变量k,可能会丢失小数部分,改成 k=(int)sqrt(m);