中国大学MOOC-陈越、何钦铭-数据结构-2020夏

tech2024-08-21  43

写的非常烂,建议不要看,以防伤眼睛

设计函数分别求两个一元多项式的乘积与和。

输入格式: 输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。

输出格式: 输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。零多项式应输出0 0。

输入样例:

4 3 4 -5 2 6 1 -2 0 3 5 20 -7 4 3 1

输出样例:

15 24 -25 22 30 21 -10 20 -21 8 35 6 -33 5 14 4 -15 3 18 2 -6 1 5 20 -4 4 -5 2 9 1 -2 0

#include <stdio.h> int main(int argc, const char * argv[]) { int num; int cnt = 1; int x,z; int i = 0; int a[3001]; int b[3001]; int c[3001]; a[3001] = {0}; b[3001] = {0}; c[3001] = {0}; scanf("%d",&num); while (cnt <= num){ scanf ("%d %d",&x,&z); a[z] = x; c[z] = x; cnt ++; } scanf ("%d",&num); cnt = 1; while (cnt<=num) { scanf("%d %d",&x,&z); for (i = 0;i<= 3001;i++){ if (a[i]*x){ b[i+z] += a[i]*x; } } c[z] += x; cnt ++; } for (i = 3001;i>=0;i--){ if(b[i]){ printf ("%d %d ",b[i],i); } } printf ("\n"); for (i = 3001;i>=0;i--){ if (c[i]){ printf ("%d %d ",c[i],i); } } printf ("\b\nu"); return 0; }

非常绝望,输出一样,但是却怎么都不对 我也不知道问题出在哪

4 3 4 -5 2 6 1 -2 0 3 5 20 -7 4 3 1 15 24 -25 22 30 21 -10 20 -21 8 35 6 -33 5 14 4 -15 3 18 2 -6 1 5 20 -4 4 -5 2 9 1 -2 0Program exited with status 0

最新回复(0)