主题:[讨论]高手来看下我程序有什么问题
[em1]编译通过 但无法正常运行 [em6] 项数为2 输出项数为22 而且运行时说。exe不能正常运行
跪求高手 来解答啊 下面是程序 输出没考虑系数为0的情况 有待改进
#include <stdio.h>
#include <malloc.h>
typedef struct LNode{
int xishu;
int zhishu;
struct LNode *next;
}LNode,*LinkList;
struct LNode *creat(int n)
{LNode *L,*p1,*p2;
L=(LinkList)malloc(sizeof(LNode));
L->next=NULL;
L->xishu=n;
p1=p2=(LinkList)malloc(sizeof(LNode));
printf("xiang shu :%d\n",n);
int m=0;
scanf("%d,%d",&p1->xishu,&p1->zhishu);
while(m<n-1)
{m=m+1;
if(m==1) L->next=p1;
else p2->next=p1;
p2=p1;
p1=(LinkList)malloc(sizeof(LNode));
scanf("%d,%d",&p1->xishu,&p1->zhishu);
}
p2->next=NULL;
return (L);
}
void print(LinkList &L)
{
printf("项数:%d",L->xishu);
LNode *p;
p=L;
while(p->next!=NULL)
{printf("%d %d\n",p->xishu,p->zhishu);
p=p->next;
}
}
struct LNode *chengfa(LinkList &L1,LinkList &L2,int x1 ,int x2)
{LNode *p,*q,*qq,*L;
L=(LinkList)malloc(sizeof(LNode));
int m,n;
for(n=1;n<x1;n++)
{p=L1->next;
for(m=1;m<x2;m++)
{q=L2->next;
qq=(LinkList)malloc(sizeof(LNode));
qq->xishu=p->xishu*q->xishu;
qq->zhishu=p->zhishu*q->zhishu;
qq->next=L->next;
L->next=qq;
q=q->next;
}
p=p->next;
}
L->xishu=x1*x2;
return (L);
}
void main()
{struct LNode *creat(int n);
void print(LinkList &L);
struct LNode *chengfa(LinkList &L1,LinkList &L2,int x1,int x2);
int x1,x2;
printf("please input p(x)\n");
LNode *L1;
L1=(LinkList)malloc(sizeof(LNode));
L1=creat(1);
print(L1);
printf("please input q(x)\n");
LNode *L2;
L2=(LinkList)malloc(sizeof(LNode));
L2=creat(1);
print(L2);
LNode *L;
L=(LinkList)malloc(sizeof(LNode));
L=chengfa(L1,L2,2,2);
printf("p(x)*q(x)=");
print(L);
}
跪求高手 来解答啊 下面是程序 输出没考虑系数为0的情况 有待改进
#include <stdio.h>
#include <malloc.h>
typedef struct LNode{
int xishu;
int zhishu;
struct LNode *next;
}LNode,*LinkList;
struct LNode *creat(int n)
{LNode *L,*p1,*p2;
L=(LinkList)malloc(sizeof(LNode));
L->next=NULL;
L->xishu=n;
p1=p2=(LinkList)malloc(sizeof(LNode));
printf("xiang shu :%d\n",n);
int m=0;
scanf("%d,%d",&p1->xishu,&p1->zhishu);
while(m<n-1)
{m=m+1;
if(m==1) L->next=p1;
else p2->next=p1;
p2=p1;
p1=(LinkList)malloc(sizeof(LNode));
scanf("%d,%d",&p1->xishu,&p1->zhishu);
}
p2->next=NULL;
return (L);
}
void print(LinkList &L)
{
printf("项数:%d",L->xishu);
LNode *p;
p=L;
while(p->next!=NULL)
{printf("%d %d\n",p->xishu,p->zhishu);
p=p->next;
}
}
struct LNode *chengfa(LinkList &L1,LinkList &L2,int x1 ,int x2)
{LNode *p,*q,*qq,*L;
L=(LinkList)malloc(sizeof(LNode));
int m,n;
for(n=1;n<x1;n++)
{p=L1->next;
for(m=1;m<x2;m++)
{q=L2->next;
qq=(LinkList)malloc(sizeof(LNode));
qq->xishu=p->xishu*q->xishu;
qq->zhishu=p->zhishu*q->zhishu;
qq->next=L->next;
L->next=qq;
q=q->next;
}
p=p->next;
}
L->xishu=x1*x2;
return (L);
}
void main()
{struct LNode *creat(int n);
void print(LinkList &L);
struct LNode *chengfa(LinkList &L1,LinkList &L2,int x1,int x2);
int x1,x2;
printf("please input p(x)\n");
LNode *L1;
L1=(LinkList)malloc(sizeof(LNode));
L1=creat(1);
print(L1);
printf("please input q(x)\n");
LNode *L2;
L2=(LinkList)malloc(sizeof(LNode));
L2=creat(1);
print(L2);
LNode *L;
L=(LinkList)malloc(sizeof(LNode));
L=chengfa(L1,L2,2,2);
printf("p(x)*q(x)=");
print(L);
}