建立一个带头节点的单项链表,并用随机函数为各节点赋值,函数fun的功能是:将单项链表节点(不包括头结点)数据域为偶数的值累加起来,并且作为函数值返回。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdio.h>
typedef struct aa
{
int data;
struct aa *next;
}NODE;
int fun(NODE *h)
{
int sum = 0;
NODE *p;
p = h->next;
while (p)
{
if (p->data % 2 == 0)
sum += p->data;
p = p->next;
}
return sum;
}
NODE *creatlink(int n)
{
NODE *h,*p, *s;
int i;
h = p = (NODE*)malloc(sizeof(NODE));
p->next = NULL;
for (i = 1;i <= n;i++)
{
s = (NODE *)malloc(sizeof(NODE));
s->data = rand() % 16;
s->next = p->next;
p->next = s;
p= p->next;
}
p->next = NULL;
return h;
}
outlink(NODE *h, FILE *pf)
{
NODE *p;
p = h->next;
fprintf(pf, "\n\nThe List :\n\n Head ");
while (p)
{
fprintf(pf, "->%d", p->data);
p = p->next;
}
fprintf(pf, "\n\n");
}
outresult(int s, FILE *pf)
{
fprintf(pf, "\nThe aum of even number : %d\n", s);
}
int main()
{
NODE *head;
int even;
head = creatlink(12);
head->data = 9000;
outlink(head, stdout);
even = fun(head);
printf("\nThe result :\n");
outresult(even, stdout);
system("pause");
return 0;
}