![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
编程要求用户输入x值,然后显示多项式的值:3x^5+2x^4-5x^3-x^2+7x-6
voidmain(){intx;longy;printf("EnterX:");scanf("%d",&x);/*方法一:y=3*x+2;y=y*x-5;y=y*x-1;...
void main()
{
int x;
long y;
printf("Enter X:");
scanf("%d",&x);
/*方法一:
y=3*x+2;
y=y*x-5;
y=y*x-1;
y=y*x+7;
y=y*x-6;
能得出正确结果*/
y=3*x*x*x*x*x+2*x*x*x*x-5*x*x*x-x*x+7*x-6;
//方法二测试时,有些值正确,有些不正确。
printf("Y=%ld",y);
}
求高手找出原因? 展开
{
int x;
long y;
printf("Enter X:");
scanf("%d",&x);
/*方法一:
y=3*x+2;
y=y*x-5;
y=y*x-1;
y=y*x+7;
y=y*x-6;
能得出正确结果*/
y=3*x*x*x*x*x+2*x*x*x*x-5*x*x*x-x*x+7*x-6;
//方法二测试时,有些值正确,有些不正确。
printf("Y=%ld",y);
}
求高手找出原因? 展开
3个回答
展开全部
x*x*x*x*x
是因为这个,如果x太大的话乘起来会超过long类型,然而你这个式子里面有减法,减掉之后最后的结果可能是在long范围内的。你输的x值不能太大的
比如你输入10000这样的值,结果出来肯定不正确的。
是因为这个,如果x太大的话乘起来会超过long类型,然而你这个式子里面有减法,减掉之后最后的结果可能是在long范围内的。你输的x值不能太大的
比如你输入10000这样的值,结果出来肯定不正确的。
展开全部
强制类型转化
y=(long)(3*x*x*x*x*x)+(long)(2*x*x*x*x)-(long)(5*x*x*x)-(long)(x*x)+(long)(7*x)-6;
y=(long)(3*x*x*x*x*x)+(long)(2*x*x*x*x)-(long)(5*x*x*x)-(long)(x*x)+(long)(7*x)-6;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
那些正确,那些不正确呢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询