解题思路:
注意事项:
参考代码:
#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 人评分