解题思路:

注意事项:

参考代码:

#include<stdio.h>

#include<stdlib.h>

#include<string.h>


typedef struct node

{

    int number;

    int grade;

    struct node *next;

}listnode;


listnode *creatnode(int num);

void freenode(listnode *head);


int main()

{

    int n,m;

    scanf("%d %d",&n,&m);

    listnode *firstnode=creatnode(n);

    listnode *secondnode=creatnode(m);

    for(listnode *i=firstnode;i!=NULL && i->next!=NULL;)

    {

        int flag=0;

        for(listnode *j=secondnode;j!=NULL && j->next!=NULL;)

        {

            if(i->next->number==j->next->number)

            {

                listnode *temp=i->next;

                i->next=temp->next;

                free(temp);

                flag=1;

                break;

            }

            else

            {

                j=j->next;

            }

        }

        if(flag==0)

        {

            i=i->next;

        }

    }

    

    int count=0;

    for(listnode *k=firstnode;k->next!=NULL;k=k->next)

    {

        count++;

    }

    printf("%d\n",count);

    for(listnode *q=firstnode;q->next!=NULL;q=q->next)

    {

        printf("%d %d\n",q->next->number,q->next->grade);

    }

    

    freenode(firstnode);

    freenode(secondnode);

    

    printf("\n");

    

    return 0;

}


listnode *creatnode(int num)

{

    listnode *head,*middle,*temp;

    head=(listnode *)malloc(sizeof(listnode));

    if(head==NULL)

    {

        perror("malloc");

        exit(0);

    }

    head->next=NULL;

    temp=head;

    for(int i=0;i<num;i++)

    {

        middle=(listnode *)malloc(sizeof(listnode));

        if(middle==NULL)

        {

            perror("malloc");

            exit(0);

        }

        scanf("%d %d",&middle->number,&middle->grade);

        temp->next=middle;

        temp=middle;

    }

    temp->next=NULL;

    return head;

}


void freenode(listnode *head)

{

    listnode *curr=head;

    while(curr)

    {

        listnode *temp=curr->next;

        free(curr);

        curr=temp;

    }

    head=NULL;

}


点赞(0)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论