作业帮 > 综合 > 作业

应用结构体求多项式的值.多项式:anxn+an-1xn-1+an-2xn-2+…+a1x+a0

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/05/01 15:01:30
应用结构体求多项式的值.多项式:anxn+an-1xn-1+an-2xn-2+…+a1x+a0
#include
#include
struct Poly
{ float a; /*系数*/
int n; /*指数*/
};
double fpvalue()
{ struct Poly p;
double pvalue=0;
float x;
printf("输入多项式X:\n");
scanf("%f",&x);
printf("输入多项式系数(a)和指数( n,n=-10000,结束):\n");
scanf("%f %d",p.a,p.n);
while(p.=-10000)
{pvalue+=p.a*pow(x,n);
scanf("%f %d",p.a,p.n);
}
return pvalue;
}
void main()
{
printf("多项式值:%20.8f\n",fpvalue());
}
主要错误有两处,
scanf("%f %d",p.a,p.n);改为scanf("%f %d",&p.a,&p.n);注意这个有两处需要改!while语句上面一处,while循环里还有一处.
pvalue+=p.a*pow(x,n);改为pvalue+=p.a*pow(x,p.n);
下面是修改后的代码:
#include
#include
struct Poly
{ float a; /*系数*/
int n; /*指数*/
};
double fpvalue()
{ struct Poly p;
double pvalue=0;
float x;
printf("输入多项式X:\n");
scanf("%f",&x);
printf("输入多项式系数(a)和指数( n,n=-10000,结束):\n");
scanf("%f %d",&p.a,&p.n);
while(p.n!=-10000)
{pvalue+=p.a*pow(x,p.n);
scanf("%f %d",&p.a,&p.n);
}
return pvalue;
}
void main()
{
printf("多项式值:%20.8f\n",fpvalue());
}