C++ 计算多项式

给定x,计算多项式f(x)=anxn+an-1xn-1+…+a2x2+a1x+a0的值。如计算2x5-4x4+x3-2x-6在x=2.5时的值。#include<iost... 给定x,计算多项式f(x)=anxn+ an-1xn-1 +…+ a2x2 + a1x + a0 的值。如计算2x5-4x4+x3-2x-6在x=2.5时的值。

#include <iostream>
#include <iomanip>
using namespace std;
int main(void)
{
int a[9],n,i,j;
double x,sum=0,sum1=1;
while(cin>>n>>x)
{
for(i=n;i>=0;i--)
cin>>a[i];
n=n+1;
while(n--)
{
for(j=1;j<=n;j++)
sum1*=x;
sum+=a[n]*sum1;
sum1=1;
}
cout<<setiosflags(ios::fixed)<<setprecision(2)<<sum<<endl;
}
return 0;
}
求解计算部分哪里错了。谢谢!
重新写的程序,但是问题一样。

#include <iostream>
#include <iomanip>
using namespace std;
int main(void)
{
int a[9],n,i,j,k;
double x,sum=0,b[9];
while(cin>>n>>x)
{
for(i=n;i>=0;i--)
cin>>a[i];
b[0]=1;
for(j=1;j<n+1;j++)
b[j]=b[j-1]*x;
for(k=0;k<n+1;k++)
sum+=a[k]*b[k];
printf("%.2f\n",sum);
}
return 0;
}
展开
 我来答
zhaotianyuan2
2015-09-03 · TA获得超过149个赞
知道小有建树答主
回答量:187
采纳率:0%
帮助的人:117万
展开全部

在while(cin>>n>>x)这个主循环中,每运行一次sum就得清一次零……

试试这个

#include <iostream>
#include <iomanip>
using namespace std;
int main(void)
{
 int a[9],n,i,j;
 double x,sum=0,sum1=1;
 while(cin>>n>>x)
 {
  for(i=n;i>=0;i--)
   cin>>a[i];
  n=n+1;
  while(n--)
  {
      sum=0;//清零sum
   for(j=1;j<=n;j++)
    sum1*=x;
   sum+=a[n]*sum1;
   sum1=1;
  }
  cout<<setiosflags(ios::fixed)<<setprecision(2)<<sum<<endl;
 }
 return 0;
}
追问
没有用。我是提交到判题系统上的,它显示WA,正确答案是60,但我的答案是00
我刚刚重写了程序,比之前的简单一点,补充在提问里,但是出现的问题和思路是一样的。能帮我再看一次么?谢谢。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式