首页
社区
课程
招聘
[求助]大家看看我写的代码怎么错了?很奇怪,关于链表
发表于: 2008-4-22 16:45 3849

[求助]大家看看我写的代码怎么错了?很奇怪,关于链表

2008-4-22 16:45
3849
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
typedef int DataType;

typedef struct Node
{
        DataType coef;
        DataType expn;
        struct Node *next;
} SLNode;

void ListInitiate(SLNode **head)  //初始化
{
        if((*head=(SLNode *)malloc(sizeof(SLNode)))==NULL) exit(1);
        (*head)->next=NULL;
}

void ListInsert(SLNode *head) //插入
{
        SLNode *p;
        DataType c,e;
        p=head;
        printf("Please input the coef\n");
        scanf("%d",&c);
        printf("Please input the expn\n");
        scanf("%d",&e);

        while(c!=0&&e!=0)
        {
                p->next=(SLNode *)malloc(sizeof(SLNode));
                p=p->next;
                p->coef=c;
                p->expn=e;
                printf("Please input the next coef\n");
                scanf("%d",&c);
                printf("Please input the next expn\n");
                scanf("%d",&e);
        }
        p->next=NULL;       
}

void order(SLNode *head)
{
        SLNode *p,*q,*s;
        p=head;
        q=head->next;
        while(p!=NULL&&q!=NULL)
        {
                if(p->next->expn<q->next->expn)
                {
                        q=q->next;
                }
                else if(p->next->expn>q->next->expn)
                {
                        p->next=q->next;
                        q->next=p->next->next;
                        p->next->next=q;
                }
                else if(p->next->expn==q->next->expn)
                {
                        s=q->next;
                        p->next->coef=p->next->coef+q->next->coef;
                        q->next=q->next->next;
                        free(s);
                }
        }

void main()
{
        int m,n;
        SLNode *a,*b,*c,*p;
        ListInitiate(&a);
        ListInitiate(&b);
        ListInitiate(&c);
        printf("请选择解析式 a or b \n");
        scanf("%d",&m);
        ListInsert(m);
        printf("\n");
        printf("请选择解析式 a or b \n");
        scanf("%d",&n);
        ListInsert(n);
        printf("\n");
        order(a);
        order(b);
        p=c;
        while(a->next!=NULL&&b->next!=NULL)
        {
                a=a->next;
                b=b->next;
                if(a->expn>b->expn)
                {
                        p->next=(SLNode *)malloc(sizeof(SLNode));
                        p=p->next;
                        p->coef=b->coef;
                        p->expn=b->expn;
                        p->next=NULL;
                        b=b->next;
                }
                else if(a->expn<b->expn)
                {
                        p->next=(SLNode *)malloc(sizeof(SLNode));
                        p=p->next;
                        p->coef=a->coef;
                        p->expn=a->expn;
                        p->next=NULL;
                        a=a->next;       
                }
                else if(a->expn==b->expn)
                {
                        p->next=(SLNode *)malloc(sizeof(SLNode));
                        if(!(a->coef+b->coef==0))
                        {
                                p->next=(SLNode *)malloc(sizeof(SLNode));
                                p=p->next;
                                p->coef=a->coef+b->coef;
                                p->expn=a->expn;
                        }
                        a=a->next;
                        b=b->next;
                }
        }
       
}

.cpp(72) : error C2601: 'main' : local function definitions are illegal
.cpp(127) : fatal error C1004: unexpected end of file found

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 1
支持
分享
最新回复 (2)
雪    币: 437
活跃值: (273)
能力值: ( LV12,RANK:240 )
在线值:
发帖
回帖
粉丝
2
void order(SLNode *head)   

这个函数的 {  }  符号的个数是奇数个= =
2008-4-22 17:27
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢:)
我看得头都大了。非常感谢
2008-4-22 18:14
0
游客
登录 | 注册 方可回帖
返回
//