新手问题,帮帮忙,谢谢!!
C程序设计(第三版) 谭浩强 著
例11.7
#include <stdio.h>
#define NULL 0
struct student
{
long num;
float score;
struct student * next;
};
void main()
{
struct student a, b, c, *head, *p;
a.num = 10101; a.score = 89.5;
b.num=10103; b.score = 90;
c.num = 10107; c.score = 85;
head = &a;
a.next = &b;
b.next = &c;
c.next = NULL;
p = head;
do
{
printf("%1d %5.1f\n",p->num,p->score);
p = p->next;
}while(p!=NULL);
}
书上的输出结果为 :
10101 89.5
10103 90.0
10107 85.0
可是我自己输出的结果是这样的的:
10101 2.68156.................很长的一串......00e+154
10103 -0.0
10107 2.0
还有就是我在p = head; 这句话后面随便声明一个变量比如 int i = 0;
就会发生expression syntax in function main 异常,为什么?
我的电脑是64位系统,使用的【Turbo C 2.0 x64】编译器,这个好像是虚拟的dos环境啥的,不知道跟这个有没有关系。
求大神帮帮忙,实在是搞不懂了。 谢谢, 谢谢 C
[解决办法]
head = &a;
a.next = &b;
b.next = &c;
c.next = NULL;
p = head;
do
{
printf("%1d %5.1f\n",p->num,p->score);
p = p->next;
}while(p!=NULL);
}
他这里给phead赋值a,但是a指向b...
c->next =NULL
所以那个循环没有循环,就一个头结点
[解决办法]
printf("%ld %5.1f\n",p->num,p->score);//楼主是不是看错了 是ld 不是1d