解题思路:
注意事项:
参考代码:
#include<stdio.h>
#include<stdlib.h>
typedef struct student
{
int id;
int score;
struct student* next;
}Linklist;
Linklist* creat_linklist(int n)
{
Linklist* head,*p,*tail;
head = (Linklist*)malloc(sizeof(Linklist));
if (head == NULL)
return NULL;
head->next = NULL;
tail = head;
int i;
for (i = 0; i < n; i++)
{
p = (Linklist*)malloc(sizeof(Linklist));
if (p == NULL)
return head;
scanf("%d %d", &p->id, &p->score);
p->next = tail->next;
tail->next = p;
tail = p;
}
return head;
}
int deleteafter_linklist(Linklist* p)
{
Linklist* r;
if (!p)
return 0;
r = p->next;
if (!r)
return 0;
p->next = r -> next;
free(r);
return 1;
}
int deleteno_linklist(Linklist* head, Linklist* p)
{
Linklist* r;
if (p->next != NULL)
{
p->id = p->next->id;
p->score = p->next->score;
return deleteafter_linklist(p);
}
else
{
r = head;
while (r->next != p)
{
r = r->next;
}
return deleteafter_linklist(r);
}
}
int main()
{
int m, n,flag;
Linklist* p1, * p2,*a,*b;
scanf("%d %d", &n, &m);
p1 = creat_linklist(n);
p2 = creat_linklist(m);
a = p1->next;
while (a)
{
flag = 0;
b = p2->next;
while (b)
{
if (a->id == b->id)
{
flag = 1;
break;
}
b = b->next;
}
if (flag)
{
deleteno_linklist(p1, a);
n--;
}
else
{
a = a->next;
}
}
printf("%d\n", n);
a = p1->next;
while (a != NULL)
{
printf("%d %d\n", a->id, a->score);
a = a->next;
}
return 0;
}
0.0分
0 人评分
2003年秋浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:721 |
C语言程序设计教程(第三版)课后习题6.4 (C语言代码)浏览:623 |
大神老白 (C语言代码)浏览:691 |
字符串问题 (C语言代码)浏览:1634 |
字符串的输入输出处理 (C语言代码)浏览:1019 |
2003年秋浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:633 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:1015 |
母牛的故事 (C语言代码)浏览:1451 |
C二级辅导-温度转换 (C语言代码)浏览:802 |
企业奖金发放 (C语言代码)浏览:2462 |