题目: 用链表存取一段数, 并按照读取的顺序输出偶数
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<stdlib.h>
typedef struct Kk //定义结构体
{
int x;
struct Kk *next; //用来连接下一个数
}Link; //是结构类型名
int n=0;
Link *creat()
{
Link *head, *p1, *end; //头,中间,尾
head = (Link*)malloc(sizeof(Link)); //申请空间
end = head; //空串end=head
p1 = (Link*)malloc(sizeof(Link)); //申请空间
while(scanf("%d", &p1->x ), p1->x != 0) //读入非0
{
n++; //计数
if(n==1) head = p1; //建桥
else end->next = p1;
end = p1; //过桥
p1 = (Link*)malloc(sizeof(Link)); //申请空间
}
end->next = NULL; //收尾
return head; //回头
}
int main()
{
Link *pt; //承接开头的指针
pt = creat();
int flag = 0; //标记有无
while(pt->next != NULL)
{
if(pt->x % 2 ==0)
{
printf("%d",pt->x);
flag = 1;
if(pt->next != NULL) printf(" ");
}
pt = pt->next;
}
if(pt->x %2 == 0)
{
printf("%d", pt->x);
flag = 1;
}
if(!flag) puts("Empty");
return 0;
}