改错题
下列给定程序中的函数Creatlink的功能是:创建带头结点的单向链表,并为各结点数据域赋0到M-1的值。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动MAIN函数,不得增行或删行,也不要更改程序的结构!
试题程序:#include
#include
#include
typedef struct aa
{
int data;
struct aa *next;
} NODE;
NODE *Creatlink(int n, int m)
{
NODE *h = NULL, *p, *s;
int i;
s = (NODE*)malloc(sizeof(NODE));
h = s;
/********found********/
p->next = NULL;
for (i=1; i { s = (NODE*)malloc(sizeof(NODE)); /********found********/ s->data = rand()%m; s->next = p->next; p->next = s; p = p->next; } s->next = NULL; /********found********/ return p; } 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; head = Creatlink(8, 22); outlink(head); } 第1处:p->next=NULL;应改为p=s; 第2处:s->data=rand()%m;应改为s->data=rand()%(m-1) 第3处:return p;应改为return h; 编辑推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |