求照顾啊~·~~~
#include<stdio.h>#include<malloc.h>
struct student
{
int num;
float score;
struct student* next;
}*head=NULL,*p1=NULL,*p2=NULL;
int main(void)
{
int i=0;
printf("Please enter 0 when you want to finish\n");
do
{
printf("please enter the num");
scanf("%d",p1->num);
printf("please enter the score");
scanf("%f",p1->score);
i++;
if(i==1)
{
head=p1;
}
p2=p1;
p1=(struct student*)(malloc(sizeof(struct student)));
p2->next=p1;
}while(p2->num);
p1=head;
while(p2->num)
{
printf("the num is %d \n",p1->num);
printf("the score is %f\n",p1->score);
p1=p1->next;
}
return 0;
}
。。错那里了TT
无法READ 和WRITTEN 怎么解决····· 奥特曼先生 发表于 2013-11-29 18:54 static/image/common/back.gif
无法READ 和WRITTEN 怎么解决·····
试了一下 好像错误不少啊
scanf("%d",p1->num);这个地方就报错了说是“访问违例”
我不懂结构体没办法研究
我就是用vc++6.0的调试看了下希望对你有点帮助 首先你定义的指针p1无指向(NULL),所以不存在p->num,其次p->num等同于(*p).num,你要向其存入数据需要加&,还有你的第二个while中p1写成p2了。
程序建议:在程序结束前最好释放节点空间,free()。
你的while循环想要终止需要多输入一次,结构体成员少时还可以,如果是学号姓名成绩年龄。。。。很多信息终止输入会很麻烦
写的太乱了。。。
页:
[1]