改錯題
下列給定程序中的函數(shù)Creatlink的功能是:創(chuàng)建帶頭結(jié)點的單向鏈表,并為各結(jié)點數(shù)據(jù)域賦0到M-1的值。
請改正程序中的錯誤,使它能得出正確結(jié)果。
注意:不要改動MAIN函數(shù),不得增行或刪行,也不要更改程序的結(jié)構(gòu)!
試題程序:#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; 編輯推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |