数据结构上机呗,两道相似的题目。稀疏多项式和这个叫多项式加减。功能差不多,代码有点相似,这道题目更加简单一点。
简单在输入输出方面,那一道稀疏多项式就比较恶心啦,输出感觉考虑贼多,至今还没有过。
这个先贴代码啦,算线性表了。
//线性表
//多项式加减法
//输入两个多项式 开头项数,然后偶数个,第一个为 系数值,指数值
//注意:但如果多项式没有非零系数项,则仅用0(M的值)表示,后面没有系数和幂次值出现。
//输出:第一组为一个值,表示多项式的非零项数M;第二组为2*M个值,
// 每相邻两个值表达一个多项式的非零系数项,分别为系数值、幂次值
#include<stdio.h>
#include<stdlib.h>
typedef struct
{
int data[22][2]; //存储第一个为系数值,另一个为指数值
int num;
}SqList;
void Input(SqList *&s);
void Add(SqList *&s1,SqList *&s2,SqList *&s3);
void Mins(SqList *&s1,SqList *&s2,SqList *&s4);
void Init(SqList *&s);
void Print(SqList *&s);
int main()
{
SqList *s1,*s2,*s3,*s4;
Input(s1); //输入进去之后
Input(s2);
Init(s3);Init(s4);
Add(s1,s2,s3);
Mins(s1,s2,s4);
Print(s3);
printf("\n");
Print(s4);
}
void Input(SqList *&s){
s = (SqList*)malloc(sizeof(SqList));
s->num = 0; //先初始化s->num,主要是考虑当输入的n为0的情况
int i = 0 ;
scanf("%d",&s->num);
for( i = 0; i< s->num ;i++)
{
scanf(