本帖最后由 风过无痕1989 于 2020-12-4 20:38 编辑
- #include<stdio.h>
- int main()
- {
- int i,j;
- int a[21][21] = { 0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 3, 0,-5, 6,-2,
- 0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 4, 0, 2, 1, 0};
- int b[21][21] = { 5, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-7, 0, 0, 3, 0,
- 20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 4, 0, 0, 1, 0,};
- int c[21][21] = { 0 }, d[42][42] = { 0 };
- for (i = 0;i < 21;i++) // 两多项式相加
- {
- c[0][i] = a[0][i] + b[0][i]; // 系数相加
- if (a[1][i] > b[1][i]) // 指数不变
- c[1][i] = a[1][i];
- else
- c[1][i] = b[1][i];
- }
-
- for (i = 0;i < 21;i++) // 两多项式相乘
- {
- for (j = 0;j < 21;j++)
- {
- d[0][i + j] += a[0][i] * b[0][j]; // 系数相乘
- if (a[0][i] != 0 && b[0][j] != 0) // 系数不为 0 ,指数相加
- {
- d[1][i + j] = a[1][i] + b[1][j];
- }
- }
- }
- for (i = 0;i < 21;i++) // 输出两多项式的和
- if (c[0][i] != 0)
- printf("%d %d ", c[0][i], c[1][i]);
- printf("\b\b\n"); // 按题目要求删除末尾的空格
- for (i = 0;i < 42;i++) // 输出两多项式的积
- if (d[0][i] != 0)
- printf("%d %d ", d[0][i], d[1][i]);
- printf("\b\b\n"); // 按题目要求删除末尾的空格
- return 0;
- }
复制代码 |