
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;
} 展开
#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;
} 展开
展开全部
在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
我刚刚重写了程序,比之前的简单一点,补充在提问里,但是出现的问题和思路是一样的。能帮我再看一次么?谢谢。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询