【简答题】
下列给定程序是建立一个带头结点的单向链表,并用随机函数为各结点赋值。函数fun()的功能是将单向链表结点(不包括头结点)数据域为偶数的值累加起来,并且作为函数值返回。 请改正函数fun()中的错误,使它能得出正确的结果。 注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序
#include <stdio.h> #include <conio.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; /* * * * *found* * * * * / while(p->next) { if(p->data% 2==0) sum+=p->data; /* * * * *found* * * * * / p=h->next; } return sum; } NODE *creatlink(int n) { NODE *h, *p, *s; int i; h=p=(NODE*)malloc(sizeof(NODE)); 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) { NODE *p; p=h->next; printf("\n\nTHE LIST:\n\n HEAD") while(p) { printf("->% d", p->data); p=p->next; } printf("\n"); } main() { NODE *head; int sum; head=creatlink (10); outlink (head); sum=fun(head); printf("\nSUM=% d", sum); }试题程序
手机使用
分享
复制链接
新浪微博
分享QQ
微信扫一扫
微信内点击右上角“…”即可分享
反馈
收藏
举报
参考答案:
参考解析: