我基本上尝试使用下面给出的代码找到(x + 1)^ 2(对于多项式1和2的幂,输入为1 1,对于P1的系数为1 1,对于P2的系数为1)。
#include <stdio.h>
int main()
{
int m,n;
printf("enter the highest powers of P1 and P2\n");
scanf("%d%d",&m,&n); //m= power of P1, n=power of P2
int a[m],b[n],c[m+n]; //a[m]= coeff of P1, b[n]= coeffof P2
printf("enter the values\n");
for(int i=0;i<=m;i++) //takes coeff of P1 as input
{ printf("a[%d]=\n",i); //array index are same as the power of x
scanf("%d",&a[i]);
}
for(int i=0;i<=n;i++) //takes coeff of P2 as input
{ printf("b[%d]=\n",i); //array index are same as the power of x
scanf("%d",&b[i]);
}
for(int i=0;i<=m+n;i++) //to initialize array c to zero
{ printf("c[%d]=\n",i);
scanf("%d",&c[i]);
}
for(int k=0;k<=m+n;k++) //k= power of x in the polynomial= array index
{ for(int i=0;i<=k;i++)
c[k]=c[k]+a[i]*b[k-i]; //for fixed k, summing a[i]*b[k-i]
}
for(int i=0;i<=m+n;i++)
printf("c[%d]=%d\n",i,c[i]);
}
我的答案为2293469x ^ 2 + 2x + 1.请帮忙。
答案 0 :(得分:0)
这是一种误解,以下会做
int a [m + 1],b [n + 1],c [m + 1 + n + 1];
有效指数则为0..m和0..n。
通常的做法是使用2 2和<m
,<n
。
a和b中的索引超出范围:
for(int k = 0; k <= m+n; k++)
{
for(int i = 0; i <= k; i++)
{
c[k] = c[k] + a[i] * b[k-i];
}
}