各位大虾,菜鸟求救!!!!!!!

来源:百度知道 编辑:UC知道 时间:2024/05/18 01:40:50
我正在学c编程,写了如下代码:
可无论是在vc++ 6.0还是在turbo c++ 下编译执行都不行,好象是陷入了死循环,这是怎么回事啊,请大师指点啊。
另外这段代码是从教科书上抄下来的。怎么回事啊。。。

#include <stdio.h>

int main()
{
struct entry
{
int value;
struct entry *next;
};
struct entry n1,n2,n3;
struct entry *list_pointer=&n1;

n1.value=100;
n1.next=&n2;

n2.value =200;
n2.next =&n3;

n3.value = 300;
n3.next = 0;

while (list_pointer != 0);
{
printf("%i\n",list_pointer->value);
list_pointer=list_pointer->next;
}
return 0;

}

while后面不能用分号。

while语句的语法是:
while (condition)
{
statement;
}
condition可以是任何表达式,statement可以使任何合法的语句块。
如果在while (condition)后不小心加上了分号,将导致循环无休止执行!

如果还有别的问题可以随时给我发短消息。

用vc缺#include "stdafx.h""加上后去分号,用vc6.0测试.结果正确.缺#include "stdafx.h"你vc真得编译成功了?

while (list_pointer != 0)后直接是{//程序}不能有其它符号的,:根本就不能存在啊!你删掉":"试试.另外告你,教科书也是经常会出错的,学编程要边看边试.要自己思考!祝你成功!!!

我也同意将while (list_pointer != 0); 的分号去掉

应该去掉分号

这是个简单的链表程序

list_pointer是头指针
用while循环 遍历 整个链表
输出每个节点的value值

把while语句后的“;”删除