小小小菜鸟. 发表于 2017-4-25 21:27:21

大神们我又来问问题了

本小白特爱学习
真的
这道题我一星期没做出来了茶不思饭不想   都饿瘦了
好了不bb了上面都是假的

1多项式加法(5分)
题目内容:
一个多项式可以表达为x的各次幂与系数乘积的和,比如:
2x6+3x5+12x3+6x+20
现在,你的程序要读入两个多项式,然后输出这两个多项式的和,也就是把对应的幂上的系数相加然后输出。
程序要处理的幂最大为100。

输入格式:
总共要输入两个多项式,每个多项式的输入格式如下:
每行输入两个数字,第一个表示幂次,第二个表示该幂次的系数,所有的系数都是整数。第一行一定是最高幂,最后一行一定是0次幂。
注意第一行和最后一行之间不一定按照幂次降低顺序排列;如果某个幂次的系数为0,就不出现在输入数据中了;0次幂的系数为0时还是会出现在输入数据中。

输出格式:
从最高幂开始依次降到0幂,如:
2x6+3x5+12x3-6x+20
注意其中的x是小写字母x,而且所有的符号之间都没有空格,如果某个幂的系数为0则不需要有那项。

输入样例:
6 2
5 3
3 12
1 6
0 20
6 2
5 3
2 12
1 6
0 20

输出样例:
4x6+6x5+12x3+12x2+12x+40

题就是这样的,主要是想了解这题该怎么解   求个详细(特别详细的那种.)的解题方法
谢谢各位大神了有劳了

小小小菜鸟. 发表于 2017-4-25 21:30:45

大神们都睡觉了吗?

人造人 发表于 2017-4-25 23:15:31

这道题是哪里的?
可以截一下图吗

小小小菜鸟. 发表于 2017-4-26 10:03:00

人造人 发表于 2017-4-25 23:15
这道题是哪里的?
可以截一下图吗

版主又是你啊   还是上次那个网站上的题
http://www.icourse163.org/learn/ZJU-199001#/learn/ojhw?id=1002601963
第七周数组

人造人 发表于 2017-4-26 16:43:27

小小小菜鸟. 发表于 2017-4-26 10:03
版主又是你啊   还是上次那个网站上的题
http://www.icourse163.org/learn/ZJU-199001#/learn/ojhw?id=1 ...

http://blog.csdn.net/codeforcer/article/details/53284493

小小小菜鸟. 发表于 2017-4-26 22:10:18

人造人 发表于 2017-4-26 16:43
http://blog.csdn.net/codeforcer/article/details/53284493

我不是来要答案的啊   上次拿题的代码我也没错最后是因为一个数据范围
而检测程序好像不需要范围
这次问题其实最主要的是想知道该怎么做
就是弄懂这道题这样
不过还是谢谢版主了辛苦

人造人 发表于 2017-4-26 23:19:15

小小小菜鸟. 发表于 2017-4-26 22:10
我不是来要答案的啊   上次拿题的代码我也没错最后是因为一个数据范围
而检测程序好像不需要范围
这次 ...

#include <stdio.h>

typedef struct
{
        int item; // 第0个表示幂次,第1个表示该幂次的系数
} Polynomial;

int main(void)
{
        Polynomial polynomial1;
        Polynomial polynomial2;
        Polynomial result;
        int i, j, k;
        int i1, j1, k1;
        char op;

        i = 0;
        while(1)
        {
                scanf("%d %d", &polynomial1.item, &polynomial1.item);
                i++;

                if(polynomial1.item == 0)
                {
                        break;
                }
        }

        j = 0;
        while(1)
        {
                scanf("%d %d", &polynomial2.item, &polynomial2.item);
                j++;

                if(polynomial2.item == 0)
                {
                        break;
                }
        }

        k = 0;
        i1 = 0;
        j1 = 0;
        while(1)
        {
                if(i1 == i || j1 == j)
                {
                        break;
                }

                if(polynomial1.item > polynomial2.item)
                {
                        result.item = polynomial1.item;
                        result.item = polynomial1.item;
                        k++;
                        i1++;
                }
                else if(polynomial1.item == polynomial2.item)
                {
                        result.item = polynomial1.item;
                        result.item = polynomial1.item + polynomial2.item;
                        k++;
                        i1++;
                        j1++;
                }
                else
                {
                        result.item = polynomial2.item;
                        result.item = polynomial2.item;
                        k++;
                        j1++;
                }
        }

        k1 = 0;
        op = ' ';
        while(1)
        {
                if(k1 == k)
                {
                        break;
                }

                if(result.item == 0)
                {
                        k1++;
                        continue;
                }

                if(op != ' ')
                        putchar(op);
                op = '+';

                if(result.item == 0)
                {
                        printf("%d", result.item);
                        k1++;
                        continue;
                }


                if(result.item == 1)
                {
                        printf("%d", result.item);
                        k1++;
                        putchar('x');
                        continue;
                }

                printf("%d", result.item);
                putchar('x');
                printf("%d", result.item);
                k1++;
        }
        putchar('\n');

        return 0;
}


6 2
5 3
3 12
1 6
0 20
6 2
5 3
2 12
1 6
0 20
4x6+6x5+12x3+12x2+12x+40
请按任意键继续. . .

这是我写的,不要指望这段代码可以通过那个测试,因为我也不知道哪里错了

程序本来就不应该是通用的,而应该是专用的,我写的代码通过了我的测试,
输入
5 3
3 12
1 6
0 20
6 2
5 3
2 12
1 6
0 20

输出
4x6+6x5+12x3+12x2+12x+40

这样就行了,如果你非要说我写的代码错了,可以,告诉我,哪里错了,我有兴趣的话,会改正,但是

我看不懂这样的报告,结果错误?究竟输入了什么,导致的结果错误?
不告诉我这个,我没办法调试我的程序(程序是调试出来的)

我真的不建议你继续跟着这个网站学习,这样只会浪费你的时间

小小小菜鸟. 发表于 2017-4-30 17:40:51

人造人 发表于 2017-4-26 23:19
这是我写的,不要指望这段代码可以通过那个测试,因为我也不知道哪里错了

程序本来就不应该是 ...

应该没有考虑输入数是0负数等情况才错的吧
我就是做做这个网站上的题    弄懂题该怎么写代码这样子

人造人 发表于 2017-4-30 18:37:54

小小小菜鸟. 发表于 2017-4-30 17:40
应该没有考虑输入数是0负数等情况才错的吧
我就是做做这个网站上的题    弄懂题该怎么写代码这样子

页: [1]
查看完整版本: 大神们我又来问问题了