>
C/C++ C/C++ 10394成员

求纠错啊!!!苦逼一样的在实验室等死中……

贫尼法号小泡泡 2011-11-06
输入一个字符串,存入链表,并逆序输出!!!
lz已经试了n个方法,现在快死了……
等高人粗线啊!!!

#include <stdio.h>
#include <malloc.h>
#define NULL 0
#define LEN sizeof(struct node)
struct node
{
int data;
struct node *next;
};

struct node *creat(void)
{
struct node *head=NULL;
struct node *p;
int c;

while((c=getchar())!=EOF)
{
p=(struct node*)malloc(LEN);
if(c=='\n')
continue;
p->data=(char)c;
p->next=NULL;

if(NULL==head)
{
head=p;
}
else
{
struct node *h=head;
while(h->next)
{
h=h->next;
}
h->next=p;
}
}

return(head);
}

struct node *Reversal(struct node *head)
{
struct node *p, *q, *t= NULL;
p = head;

while(q)
{
q=p->next;
p->next=t;
t=p;
p=q;
}
return t;
}
void print(struct node *he...
{
struct node *p;
printf("\tstrings after reverse:\n");
p=head;
if(head!=NULL)
do
{
printf("%c\n",p->data);
p=p->
输入一个字符串,存入链表,并逆序输出!!!
lz已经试了n个方法,现在快死了……
等高人粗线啊!!!

#include <stdio.h>
#include <malloc.h>
#define NULL 0
#define LEN sizeof(struct node)
struct node
{
int data;
struct node *next;
};

struct node *creat(void)
{
struct node *head=NULL;
struct node *p;
int c;

while((c=getchar())!=EOF)
{
p=(struct node*)malloc(LEN);
if(c=='\n')
continue;
p->data=(char)c;
p->next=NULL;

if(NULL==head)
{
head=p;
}
else
{
struct node *h=head;
while(h->next)
{
h=h->next;
}
h->next=p;
}
}

return(head);
}

struct node *Reversal(struct node *head)
{
struct node *p, *q, *t= NULL;
p = head;

while(q)
{
q=p->next;
p->next=t;
t=p;
p=q;
}
return t;
}
void print(struct node *head)
{
struct node *p;
printf("\tstrings after reverse:\n");
p=head;
if(head!=NULL)
do
{
printf("%c\n",p->data);
p=p->next;
}while(p!=NULL);
}
void main()
{

char r;
printf("\t Input the strings:");
struct node *r=creat();
r=Reversal(r);
print(r);
}
0
显示全文

查看更多有趣的豆瓣小组

回应 (3条) 只看楼主

  • [已注销]
    楼主你的代码没问题啊,我是VC6.0上试的。
    唯一比较纠结的是while((c=getchar())!=EOF) ,EOF的值貌似是-1,输入哪个键才算EOF?
  • sky
    错误还不少啊。
    struct node *creat(void) 里面 这样是死循环 可以改成while((c=getchar())!='\n')
    就是遇到回车键后结束

    struct node *Reversal(struct node *head)
    while(q) 你q都还没有赋值。 把q改成p 应该是你手误

    main()
    删去char r
    都是基础性错误啊。
    改后 我调试通过。能够实行 没太大逻辑错误。
  • 贫尼法号小泡泡
    虽然我实验课已经结课了……但是,还是谢谢亲~~~~~~~~
添加回应

C/C++的热门贴

推荐小组

值得一读

    豆瓣
    我们的精神角落
    免费下载 iOS / Android 版客户端