Hanan's Blog 2017-01-17 10:57 采纳率: 0%
浏览 2088

关于int和float在计算结果上的区别

今天写郑莉教材课后题:用递归的方法编写函数求n阶勒让德多项式的值,在主程序中实现输入、输出;(c++程序设计第六版97页)
代码如下:
#include
float p(int n, int x);
void main()
{
int n,x;
cout << "请输入正整数n:";
cin >> n;
cout << "请输入正整数x:";
cin >> x;

cout << "n = " << n << endl;
cout << "x = " << x << endl;
cout << "P" << n << "(" << x << ") = " << p(n,x) << endl;
}
float p(int n, int x)
{
if (n == 0)
return 1;
else if (n == 1)
return x;
else
return ((2*n-1)*x*p(n-1,x) - (n-1)*p(n-2,x)) /n ;
}
结果:
请输入正整数n:3
请输入正整数x:4
n = 3
x = 4
P3(4) = 154

而将函数p改为int p,其他不变,输入n=3,x=4,结果则为150。。
想知道这之间相差的4是什么造成的。。

  • 写回答

4条回答 默认 最新

  • Kolamu 2017-01-17 11:42
    关注

    除法的精度,建议你单步看一下

    评论

报告相同问题?

悬赏问题

  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站