题目大概要求如下:
for (i = m-1; i>=0; i--)
{
for (j = n-1; j >=0; j--)
{
s[i + j] += p[i] * q[j];
}
}
cout<<"它们乘积多项式:S(X)=";
for (i=m+n-2; i>=0; i--) //输出所搞的
{
if(i==0){cout<<s[i];break;}
cout<<s[i]<<"×X^"<<i<<"+";
}
}
希望有人可以帮忙解决题目问题,最好要有注释在函数后面。谢谢
给你重新写一个,可以把
#include <iostream>
using namespace std;
void mulit_poly(int p[], int n1, int q[], int n2, int s[]);
const int MAX_POLY = 20;
int main() {
int p[MAX_POLY], q[MAX_POLY], s[MAX_POLY * 2];
int n1, n2;
cin >> n1 >> n2;
for (int i = n1 - 1; i >= 0; i--) {
cin >> p[i];
}
for (int i = n2 - 1; i >= 0; i--) {
cin >> q[i];
}
mulit_poly(p, n1, q, n2, s);
bool first = true;
for (int i = n1 + n2 - 1; i >= 0; i--) {
if (s[i] != 0) {
if (!first)
cout << "+";
cout << s[i];
if (i != 0)
cout << "x^" << i;
first = false;
}
}
return 0;
}
void mulit_poly(int p[], int n1, int q[], int n2, int s[]) {
for (int i = 0; i < n1 + n2; i++) {
s[i] = 0;
}
for (int i = 0; i < n1; i++) {
for (int j = 0; j < n2; j++) {
s[i + j] += p[i] * q[j];
}
}
}