1494.简单链表
时间限制: 1000 MS 内存限制: 65536 K
提交数: 1 (0 users) 通过数: 1 (1 users)
问题描述
给定一个空链表,请按进行如下操作。
输入格式
每行输入一个整数,表示依次将这些整数插入链表;直到输入0为止,表示输入结束;
输出格式
按照插入的顺序依次输出链表中的偶数,若无偶数,输出字符串“Empty”,整数之间以一个空格分开。
样例输入
4
3
5
18
122
0
样例输出
4 18 122
来源
时间限制: 1000 MS 内存限制: 65536 K
提交数: 1 (0 users) 通过数: 1 (1 users)
问题描述
给定一个空链表,请按进行如下操作。
输入格式
每行输入一个整数,表示依次将这些整数插入链表;直到输入0为止,表示输入结束;
输出格式
按照插入的顺序依次输出链表中的偶数,若无偶数,输出字符串“Empty”,整数之间以一个空格分开。
样例输入
4
3
5
18
122
0
样例输出
4 18 122
来源
xmu
#include <stdio.h>
#include <stdlib.h>
struct Node
{
int element;
struct Node *next;
};
int main()
{
int key, has_even;
struct Node *list, *p, *q;
list = (struct Node *)malloc(sizeof(struct Node));
list->next = NULL;
q = list;
while (scanf("%d", &key) && key != 0)
{
p = (struct Node *)malloc(sizeof(struct Node));
p->element = key;
p->next = NULL;
q->next = p;
q = p;
}
p = list->next;
has_even = 0;
while (p)
{
if (p->element % 2 == 0)
{
has_even = 1;
printf("%d ", p->element);
}
p = p->next;
}
if (!has_even)
printf("Empty");
printf("\n");
return 0;
}