请问我这个静态链表哪里错了?(自行解决)
我做了个链表,一共放了四个节点。。。。。一开始的代码编译后运行错误,经过反复思考,自行解决,修改了程序,一切正常,下面的程序是完美的:#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
typedef struct stu {
int num;
bool bo;
struct stu *next;
}NODE;
int main (){
NODE a,b,c,d,*head,*p;
a.num=1;
b.num=2;
c.num=3;
d.num=4;
head = &a;
a.next=&b;
b.next=&c;
c.next=&d;
d.next=NULL;
p=head;
do{
if(p->num%2==0) p->bo=false; /*如果是偶数,布尔值为false*/
else p->bo=true; /*否则布尔值为true*/
p=p->next;
}while (p!=NULL);
/*下面打印,只打印布尔值为true的值*/
p=head; /*----这一句是我一开始忽略的,它正是问题所在-----*/
do {
if (p->bo) printf ("%d\n",p->num);
else printf ("-----------\n");
p=p->next;
}while (p!=NULL);
}
总结:写链表要时刻注意指针所指的位置。
[[it] 本帖最后由 Linklist 于 2008-4-13 04:04 编辑 [/it]]