当前位置: 代码迷 >> C语言 >> [求助]单链表储存数据的问题
  详细解决方案

[求助]单链表储存数据的问题

热度:103   发布时间:2007-10-20 20:21:53.0
[求助]单链表储存数据的问题
自学C,今天在书上看到有关单链表的内容,联系了一下在本论坛上关于模拟密码输入的帖子,决定写个无限制密码位数的程序(如下),什么地方搞错了?
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
struct psw
{
char c;
struct psw * next;
};
struct psw * add(struct psw * head,char c)
{
struct psw * p1;
//如果head的指针域为空,则申请一个节点,存入一个字符,并它赋予head的指针域;同时......
while(head->next=NULL)
{
p1=(struct psw *) malloc(sizeof(struct psw));
p1->next=NULL;
p1->c=c;
head->next=p1;
}
return head;
}
void show(struct psw * head)
{
struct psw * temp;
temp=head;
printf("\n");
while((temp->next)!=NULL)
{
printf("Right now you input:%c",(temp->next)->c);
temp=temp->next;
}
getch();
}
int main()
{
char c;
struct psw * head;
struct psw p;
head=&p;
p->next=NULL;
p->c='\0';
do
{
c=getch();
printf("*");
p=add(p,c);
}while(c!=13);
show(head);
}

[此贴子已经被作者于2007-10-20 20:31:38编辑过]

搜索更多相关的解决方案: 单链  数据  储存  

----------------解决方案--------------------------------------------------------
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
struct psw
{
char c;
struct psw *next;
};
struct psw *add(struct psw *head,char c)
{
struct psw *p1;
if(head->next==NULL)
{
p1=(struct psw *)malloc(sizeof(struct psw));
p1->next=NULL;
p1->c=c;
head->next=p1;
head=p1;
}
return head;
}
void show(struct psw *head)
{
struct psw *temp;
temp=head;
printf("\nRight now you input:");
while((temp->next)!=NULL)
{
printf("%c",(temp->next)->c);
temp=temp->next;
}
getch();
}
int main()
{
char c;
struct psw *head;
struct psw *p;
p=(struct psw *)malloc(sizeof(struct psw));
if(p==NULL) return -1;
p->next=NULL;
p->c='\0';
head=p;
do
{
c=getch();
printf("*");
p=add(p,c);
}while(c!=13);
show(head);
return 0;
}

----------------解决方案--------------------------------------------------------
编译器报什么错

----------------解决方案--------------------------------------------------------
  相关解决方案