读书人

新手有关问题帮帮忙多谢!

发布时间: 2013-03-06 16:20:31 作者: rapoo

新手问题,帮帮忙,谢谢!!
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

[解决办法]
引用:
引用:VC6.0下复制楼主代码过去编译是正确的,应该是编译器的问题,其实我都不会用TC……

噢, 那我在p = head; 这句话后面随便声明一个变量比如 int i = 0;
就会发生expression syntax in function main 异常,这个又是为什么呢?

你写C程序是怎么编译的呀,我只知……

不了解TC,现在书上C语言入门教程都是用VC编译的吧,去下载VC6.0,应该很好用的
[解决办法]
所有的变量名要在开头声明。
刚开始学先这么强记吧。

[解决办法]
程序应该是没有问题的,可能是环境的问题
C要求变量都要在程序开始处声明。
[解决办法]
C语言的变量声明一定要在最前面。
[解决办法]
引用:
引用:VC6.0下复制楼主代码过去编译是正确的,应该是编译器的问题,其实我都不会用TC……

噢, 那我在p = head; 这句话后面随便声明一个变量比如 int i = 0;
就会发生expression syntax in function main 异常,这个又是为什么呢?

你写C程序是怎么编译的呀,我只知……

C要求所有变量在最前面声明

读书人网 >C语言

热点推荐