| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 446 人关注过本帖
标题:这个动态链表怎么回事?
只看楼主 加入收藏
wl448585134
Rank: 2
等 级:论坛游民
帖 子:14
专家分:26
注 册:2012-12-15
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:5 
这个动态链表怎么回事?
#include<stdio.h>
#include<stdlib.h>
main()
{
  struct worker
  {
    char name[20];
    int age;  
    int salary;
    struct worker *next;
  };
  struct worker *head,*p1,*p2,*p;
  int i;
   i=0;
  p1=(struct worker *)malloc(sizeof(struct worker));
  printf("name age salary\n");
  scanf("%s %d %d",&p1=>name,&p1->age,&p1->salary);
  while(p1->name!=0)
  {
       head=NULL;
       i=i++;
       if(i==1)
        head=p1;
       else
           p2->next=p1;
       p2=p1;
       p1=(struct worker *)malloc(sizeof(struct worker));
       printf("name age salary");
       scanf("%s %d %d",&p1->name,&p1->age,&p1->salary);

  }
  p2->next=NULL;
   

p=head;
if(head!=NULL)
printf("Name    age    salary\n");
   for(;p=NULL;p=p->next)
 printf("%s    %d    %d",p->name,p->age,p->salary);
}
搜索更多相关主题的帖子: 动态 include age head 
2012-12-17 20:42
wl448585134
Rank: 2
等 级:论坛游民
帖 子:14
专家分:26
注 册:2012-12-15
收藏
得分:0 
&p1=>name   错了
2012-12-17 20:59
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
收藏
得分:14 
&p1=>name   改成 p1->name
最好别用scanf去接收字符串,它是以空格作为结束符,
如果用户过多输入,会使后面全部读取失败

I have not failed completely
2012-12-17 21:03
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
收藏
得分:0 
while(p1->name!=0)
name是一个字符串,不能这么用

I have not failed completely
2012-12-17 21:04
wl448585134
Rank: 2
等 级:论坛游民
帖 子:14
专家分:26
注 册:2012-12-15
收藏
得分:0 
回复 4楼 神龙赖了
你把它改了后,能运行吗?
while(p1->name!=0)是我看谭浩强书上写的。
我是新手,刚入门。
2012-12-17 21:33
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
收藏
得分:0 
好吧,其实也可以这么用...但是标准的写法不是...
while(p1->name[0] != '\0')
这样表示如果第一个字符为终止符也就是用户没有输入字符就结束程序
while(p1->name != 0)
这样没有指定name的调用元素,当然也会用第一个元素name[0],同样也可以用0,因为终止符'\0'对应的值也是0,但是既然是字符串类型最好那么写,相对来说易于理解

I have not failed completely
2012-12-24 21:53
快速回复:这个动态链表怎么回事?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020696 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved