小曹网络 发表于 2020-12-4 16:19:44

这道题求大佬解决 求完整的代码

设计函数分别求两个一元多项式的乘积与和。要求:(1) 输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。(2)输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。零多项式应输出0 0。

例:
已知以下两个多项式(其中x^4表示x的4次幂):
3x^4 - 5x^2 + 6x -2
5𝑥^20 − 7𝑥^4 + 3𝑥
多项式和为:
5𝑥^20−4 x^4 −5x^2 + 9x -2
多项式的乘积为
15x^24-25𝑥^22+30𝑥^21−10𝑥^20−21𝑥^8+35𝑥^6−33𝑥^5+14𝑥^4−15𝑥^3+18𝑥^2−6𝑥

# 输入样例:
4                  //第一个多项式的项数
3 4 -5 2 6 1 -2 0   // 第一项的系数是3,第一项指数是4 ……
3                                      //第二个多项式的项数
5 20        -7 4        3 1

# 输出样例:
5 20 -4 4 -5 2 9 1 -2 0
15 24 -25 22 30 21 -10 20 -21 8 35 6 -33 5 14 4 -15 3 18 2 -6 1

风过无痕1989 发表于 2020-12-4 16:19:45

本帖最后由 风过无痕1989 于 2020-12-4 20:38 编辑

小曹网络 发表于 2020-12-4 17:25
那个是多项式的乘积出来的结果 可能乱码了

#include<stdio.h>

int main()
{
        int i,j;
        int a = { 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 = { 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 = { 0 }, d = { 0 };

        for (i = 0;i < 21;i++)                  // 两多项式相加
        {
                c = a + b;          // 系数相加
                if (a > b)                // 指数不变
                        c = a;
                else
                        c = b;
    }
       
        for (i = 0;i < 21;i++)                  // 两多项式相乘
        {
                for (j = 0;j < 21;j++)
                {
                        d += a * b; // 系数相乘
                        if (a != 0 && b != 0) // 系数不为 0 ,指数相加
                        {
                                d = a + b;
                        }
                }
        }

        for (i = 0;i < 21;i++)                  // 输出两多项式的和
                if (c != 0)
                        printf("%d %d ", c, c);
        printf("\b\b\n");                            // 按题目要求删除末尾的空格

        for (i = 0;i < 42;i++)                  // 输出两多项式的积
                if (d != 0)
                        printf("%d %d ", d, d);
        printf("\b\b\n");                           // 按题目要求删除末尾的空格

        return 0;

}

风过无痕1989 发表于 2020-12-4 17:21:42

25&#119909;^22+30&#119909;^21−10&#119909;^20−21&#119909;^

这都是些什么乱七八糟的东东?

小曹网络 发表于 2020-12-4 17:25:25

风过无痕1989 发表于 2020-12-4 17:21
25&#119909;^22+30&#119909;^21−10&#119909;^20−21&#119909;^

这都是些什么乱七八糟的东东 ...

我也不清楚 老师发的

小曹网络 发表于 2020-12-4 17:25:57

风过无痕1989 发表于 2020-12-4 17:21
25&#119909;^22+30&#119909;^21−10&#119909;^20−21&#119909;^

这都是些什么乱七八糟的东东 ...

那个是多项式的乘积出来的结果 可能乱码了

小曹网络 发表于 2020-12-4 20:03:20

风过无痕1989 发表于 2020-12-4 19:56
两多项式相加的出来了,相乘的 21项,有点多,还需要调试

ok乘法的好了你就发给我吧 感谢兄弟

风过无痕1989 发表于 2020-12-4 20:28:19

小曹网络 发表于 2020-12-4 20:03
ok乘法的好了你就发给我吧 感谢兄弟

终于调试好了,上面的程序,我已经修改

小曹网络 发表于 2020-12-6 07:21:31

风过无痕1989 发表于 2020-12-4 20:28
终于调试好了,上面的程序,我已经修改

好的谢谢兄弟
页: [1]
查看完整版本: 这道题求大佬解决 求完整的代码