解题思路:

注意事项:

参考代码:

#include<stdio.h>

#include<stdlib.h>

typedef struct STU {

int num;

int score;

struct STU* next;

}list;

list* create(int n);

list* DleteL(list* l1, list*l2);

void output(list* t);

void count(list* t);

int main()

{

list* head1, * head2, *p;

int n, m;

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

head1 = create(n);

head2 = create(m);

head1 = DleteL(head1, head2);

p = head1;

count(p);

output(head1);

return 0;

}

list*create(int n)

{

list* temp, *p1, *p2;

p1 = (list*)malloc(sizeof(list));

p1->next = NULL;

temp = p1;

while(n--){

p2 = (list*)malloc(sizeof(list));

p2->next = NULL;

scanf("%d%d", &p2->num, &p2->score);

temp->next = p2;

temp = p2;

}

return p1;

}

 list* DleteL(list* l1, list* l2)

{

list* p1 = l1->next;

list* p2, * head, * q, *temp;

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

head->next = NULL;

temp = head;

while (p1 != NULL) {

p2 = l2->next;

while(p2 != NULL && p1->num != p2->num) {

p2 = p2->next;

}

if (p2 == NULL) {

q = (list*)malloc(sizeof(list));

q->num = p1->num;

q->score = p1->score;

q->next = NULL;

temp->next = q;

temp = q;

}

p1 = p1->next;

}

return head;

}

 void count(list* t) {

int count = 0;

while (t->next != NULL) {

t = t->next;

count++;

}

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

 }

 void output(list* t)

 {

while (t->next!= NULL) {

t = t->next;

printf("%d %d ", t->num, t->score);

}

 }


点赞(0)
 

0.0分

0 人评分

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

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

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

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

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

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

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

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

评论列表 共有 0 条评论

暂无评论