
一道C语言改错题,这句我不懂
下列给定程序中的函数Creatlink的功能是:创建带头节点的单向链表,并为各节点数据域赋0到m-1的值。请改正函数Creatlink中的错误,使它能得出正确的结果。注意...
下列给定程序中的函数Creatlink的功能是:创建带头节点的单向链表,并为各节点数据域赋0到m-1的值。
请改正函数Creatlink中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
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<n;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 The LIST :\n\n HEAD");
while(p)
{ printf("->%d",p->data);
p=p->next;}
printf("\n");
}
main()
{ NODE *head;
system("CLS");
head=Creatlink(8,22);
outlink(head);
}
【参考答案】
(1)错误:p->next=NULL; 正确:p=s;
(2)错误:s->date=rand( )%m ;
正确:s->data=rand( )%(m - 1);
(3)错误:return p; 正确:return h;
s->date=rand( )%m ;是啥意思?
rand( )是什么? 展开
请改正函数Creatlink中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
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<n;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 The LIST :\n\n HEAD");
while(p)
{ printf("->%d",p->data);
p=p->next;}
printf("\n");
}
main()
{ NODE *head;
system("CLS");
head=Creatlink(8,22);
outlink(head);
}
【参考答案】
(1)错误:p->next=NULL; 正确:p=s;
(2)错误:s->date=rand( )%m ;
正确:s->data=rand( )%(m - 1);
(3)错误:return p; 正确:return h;
s->date=rand( )%m ;是啥意思?
rand( )是什么? 展开
2个回答
2009-02-08
展开全部
>s->date=rand( )%m ;是啥意思?
>rand( )是什么?
rand()函数,作用是:产生一个随机数。
通常,通过rand函数产生随机数以后,用%m来限定它的范围。即:rand( )%m。
其原理是:用那个随机数,去除以m,留下所得余数,作为最终结果。
下面来说一下你那道题:
s->date=rand( )%m,就是从0到m-1随即选取一个数。
并将这个数赋值给s->date。
比如,rand()函数生成的随机数为98,m为8,98除以8的余数为2,
所以最后也就是将2赋值给s->date
>rand( )是什么?
rand()函数,作用是:产生一个随机数。
通常,通过rand函数产生随机数以后,用%m来限定它的范围。即:rand( )%m。
其原理是:用那个随机数,去除以m,留下所得余数,作为最终结果。
下面来说一下你那道题:
s->date=rand( )%m,就是从0到m-1随即选取一个数。
并将这个数赋值给s->date。
比如,rand()函数生成的随机数为98,m为8,98除以8的余数为2,
所以最后也就是将2赋值给s->date
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询