C语言编程题
设计程序,函数fun的功能是将单向链表结点 (不包括头结点)数据域为偶数的值累加起来, 并且作为函数值返回
#include <stdio.h>
#include <stdlib.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=sum+p->data;
p=p->next;
}
return sum;
}
NODE *creatlink(int n) //创建链表
{ NODE *h, *p, *s, *q;
int i, x;
h=p=(NODE *)malloc(sizeof(NODE));
for(i=1; i<=n; i++)
{ s=(NODE *)malloc(sizeof(NODE));
s->data=rand()%16; //用16以内的随机数为各结点数据域赋值
s->next=p->next;
p->next=s;
p=p->next;
}
p->next=NULL;
return h;
}
void 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");
}
void outresult(int s, FILE *pf)
{ fprintf(pf,"\nThe sum of even numbers : %d\n",s); }
void main()
{ NODE *head; int even;
head=creatlink(12);
head->data=9000;
outlink(head , stdout);
even=fun(head);
printf("\nThe result :\n"); outresult(even, stdout);
}
运行示例
C语言不迷路。
需要分析可以到微信公众号发送问题或者在评论区留言,有问必答!
想了解我的C语言学习笔记等更多知识请关注公众号:
量子云基地