解题思路:
注意事项:
参考代码:
#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 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复