大神们我又来问问题了
本小白特爱学习真的
这道题我一星期没做出来了茶不思饭不想 都饿瘦了
好了不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 23:15
这道题是哪里的?
可以截一下图吗
版主又是你啊 还是上次那个网站上的题
http://www.icourse163.org/learn/ZJU-199001#/learn/ojhw?id=1002601963
第七周数组 小小小菜鸟. 发表于 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 16:43
http://blog.csdn.net/codeforcer/article/details/53284493
我不是来要答案的啊 上次拿题的代码我也没错最后是因为一个数据范围
而检测程序好像不需要范围
这次问题其实最主要的是想知道该怎么做
就是弄懂这道题这样
不过还是谢谢版主了辛苦 小小小菜鸟. 发表于 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-26 23:19
这是我写的,不要指望这段代码可以通过那个测试,因为我也不知道哪里错了
程序本来就不应该是 ...
应该没有考虑输入数是0负数等情况才错的吧
我就是做做这个网站上的题 弄懂题该怎么写代码这样子 小小小菜鸟. 发表于 2017-4-30 17:40
应该没有考虑输入数是0负数等情况才错的吧
我就是做做这个网站上的题 弄懂题该怎么写代码这样子
哦
页:
[1]