Re: [问题] C语言求三次多项式定积分

楼主: LPH66 (-6.2598534e+18f)   2019-11-11 20:42:14
※ 引述《cra2y37037 (30奈米)》之铭言:
: 小弟刚开始学写C,
: 最近解题遇到了一些困难QQ
: 有一题是要求三次多项式在区域x1-x2的定积分,
: 如下图:
: https://i.imgur.com/YNFM6NJ.jpg
: 但不知道为什么,
: 求出来的定积分总是会有错,
: 例如输入
: 三次方系数=0.01
: 二次方系数=0.3
: 一次方系数=1
: 二次方系数=-1
: 在x1=5,x2=0的区域求定积分,
: https://i.imgur.com/us0LJe8.jpg
: 定积分的值是cal2-cal1,
: 这样算出来就又问题,
: 想请问是不是我红底的那部分写错,
: 导致电脑运算的逻辑和实际上不同?
cal2 = 1/4*Cef3*pow(x2,4) + 1/3*Cef2*(x2,3) + 1/2*Cef1*pow(x2,2) + Cef0*x2;
绿色这里你做的是整数除以整数,会得到整商而不是浮点数
所以你这里除下去会变成 0;要得到浮点数值请写浮点数相除
一个方法是加上 .0,写成 1.0/4.0 之类的
C 语言在看到数字里有个小数点就会把它视为浮点数
黄色这里我这样标了你应该看得出来错在哪里 XD
至于为什么这样还能算你暂时可以先不用管

Links booklink

Contact Us: admin [ a t ] ucptt.com