这个其实很简单,需要3个数组(暂时考虑int数组),长度都是10,分别保存多项式1、2和计算结果。初始化为全0。输入就按照你的假设吧。输入后三个数组分别为:
公司主营业务:成都网站建设、成都网站设计、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联公司是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联公司推出黄龙免费做网站回馈大家。
多项式1:[7, 0, -5, 2, 0, 0, 0, 0, 0, 0](x的0次幂系数是7,x的1次幂系数是2,以此类推,下同)
多项式2:[-8, 1, 3, 0, 0, 0, 0, 0, 0, 0]
计算结果:[0, 0, 0, 0, 0, 0, 0, 0, 0, 0](还没算呢,当然都是0)
加法减法很好算,不赘述。乘法怎么算呢,你按照真实的数学计算步骤推一遍就知道了,你会把3x2、x、-8分别乘以2x3-5x2+7,最后把结果加起来。转换到程序中,就是把若干个数组加起来:
[-56, 0, 40, -16, 0, 0, 0, 0, 0, 0]
[0, 7, 0, -5, 2, 0, 0, 0, 0, 0]
[0, 0, 21, 0, -15, 6, 0, 0, 0, 0]
加起来就可以了。
至于提高水平,这个题目出得不好,因为多项式相除结果不唯一。比如说2x2 + 1除以x2 + 1,你可以说2x2 + 1 = 2(x2 + 1) - 1,也可以说2x2 + 1 = 1(x2 + 1) + x2。这样的题目数学上就意义不大,用程序去实现也达不到锻炼水平的作用。也许我理解有误?
#include stdio.h
int main(){
int x = 0, y = 0;
scanf("%d", x);
y = 2 * x * x + x + 8;
printf("%d\n", y);
return 0;
}
执行结果:
写这样的程序,最主要是要知道用什么函数表示变量的几次方,这个函数在头文件math.h里,如果是自然底数e,的多少次方,就用函数exp,参数就是几次方,比如exp(x),就表示e的x次方,所以这个函数如下:
#include stdio.h
#include math.h
main()
{
double x=2.55;
double s;
s=2*pow(x,3)-5*pow(x,2)+6;
printf("%lf",s);/*double 型变量用%lf输出*/
getch(); /*不用按F5查看结果,直接回显输出结果* /
}
你看的书上的格式太老了,现在的编译器们已经不支持了。
main()
{
double plyv(a,n,x);
改成
double plyv(double a[], int n, double x);
int main(int argc, char* argv[]) {
然后再把
double plyv(a,n,x)
int n;
double x,a[];
{ int i;
改成
double plyv(double a[], int n, double x) {
int i;