编写程序,将若干整数从键盘输入,以单链表形式存储起来,然后计算单链表中结点的个数(其中指针P指向该链表的第一个结点)。
正确答案:
编写C程序如下(已上机通过):
全局变量及函数提前说明:
---------------------------------
#include
#include
typedefstructliuyu{intdata;structliuyu*link;}test;
liuyu*p,*q,*r,*head;
intm=sizeof(test);
voidmain()/*第一步,从键盘输入整数,不断添加到链表*/
{inti;
head=(test*)malloc(m);/*m=sizeof(test);*/
p=head;i=0;
while(i!=-9999)
{printf("/ninputaninteger[stopby’-9999’]:");
scanf("%d",&i);
p->data=i;/*inputdataissaved*/
p->link=(test*)malloc(m);/*m=sizeof(test));*/
q=p;
p=p->link;
}
q->link=NULL;/*原先用p->link=NULL似乎太晚!*/
p=head;i=0;/*统计链表结点的个数并打印出来*/
while(p->link!=NULL)
{printf("%d",p->datA.;
p=p->link;
i++;
}
printf("/nnodenumber=%d/n",i-1);/*结点的个数不包括-9999*/
}
全局变量及函数提前说明:
---------------------------------
#include
#include
typedefstructliuyu{intdata;structliuyu*link;}test;
liuyu*p,*q,*r,*head;
intm=sizeof(test);
voidmain()/*第一步,从键盘输入整数,不断添加到链表*/
{inti;
head=(test*)malloc(m);/*m=sizeof(test);*/
p=head;i=0;
while(i!=-9999)
{printf("/ninputaninteger[stopby’-9999’]:");
scanf("%d",&i);
p->data=i;/*inputdataissaved*/
p->link=(test*)malloc(m);/*m=sizeof(test));*/
q=p;
p=p->link;
}
q->link=NULL;/*原先用p->link=NULL似乎太晚!*/
p=head;i=0;/*统计链表结点的个数并打印出来*/
while(p->link!=NULL)
{printf("%d",p->datA.;
p=p->link;
i++;
}
printf("/nnodenumber=%d/n",i-1);/*结点的个数不包括-9999*/
}
答案解析:有
微信扫一扫手机做题