| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 575 人关注过本帖
标题:C语言结构体一人条问题:求高手检错
只看楼主 加入收藏
EricZhan
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2010-7-9
结帖率:86.67%
收藏
 问题点数:0 回复次数:5 
C语言结构体一人条问题:求高手检错
从链表1中删去与链表2号码的结构体。
#include "stdio.h"
#include "malloc.h"
#define LA 4  
#define LB 5  

struct student  
{
  char num[6];  
  char name[8];  
  struct student *next;  
}A[LA],b[LB];

void print(struct student *head)
{   struct student *p1;
    p1=head;
    printf("输出数据\n");
    while(p1!=NULL)
   {printf("%d %s \n",p1->num,p1->name);
    p1=p1->next;
   }
}
  
struct student *creat(struct student *head,struct student *head2)
{
    struct student *p,*q;
    struct student *p2=head2;
    int a;
    q=p=head;
    for(;p!=NULL;p=p->next/*p再后移*/)
 { for(p2=head2;p2!=NULL;p2=p2->next)/*循环比较链表1和2的num*/
  {
     if(p->num==p2->num) /*若p的num和p2的num相同时*/
   { if(p==head)        /*再判断是否为第一个地址*/
     { head=q->next;    /*若是,则将head后移一个地址*/
       a=1;             /*用作结束循环*/
      }
     else
       {q->next=p->next;/*若不是第一个地址,则跳过链表1和2两同num*/
         a=1;           /*用作结束循环*/
       }
   }break;       /*若执行了if语句则跳出循环*/
   if(a==1)break;   /*再跳出循环*/
  }
  q=p;        /*让q指向p之前的一个地址*/
 }
   free(p);
   return head;
}
   
void main()  
{
    struct student a[LA]={{"101","Wang"},{"102","LI"},{"105","zhang"},{"106","Wei"}};  
    struct student b[LB]={{"103","Zhang"},{"104","Ma"},{"105","Chen"},{"107","Guo"},  {"108","Lui"}};
    struct student *head,*head2;
    a[0].next=&a[1];/*连接成链表*/
    a[1].next=&a[2];
    a[2].next=&a[3];
    a[3].next=NULL;
    b[0].next=&b[1];
    b[1].next=&b[2];
    b[2].next=&b[3];
    b[3].next=&b[4];
    b[4].next=NULL;
    head=a;
    head2=b;
    head=creat(head,head2);
    print(head);
    getch();
}

拜托了
搜索更多相关主题的帖子: 检错 C语言 结构体 
2010-08-07 18:24
mujiaha
Rank: 2
等 级:论坛游民
帖 子:37
专家分:65
注 册:2010-7-27
收藏
得分:0 
你这个程序是做什么用的啊 是把2个链表连起来还是??char num[6];  char name[8];  你定义了为char num[6],这字符串怎么能这样比较“p->num==p2->num”,要不就定义为
int num  要不就用strcmp(p->num,p2->num);
2010-08-07 18:57
mujiaha
Rank: 2
等 级:论坛游民
帖 子:37
专家分:65
注 册:2010-7-27
收藏
得分:0 
free(p);多余
2010-08-07 18:58
灰色代言
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-08-07 21:50
EricZhan
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2010-7-9
收藏
得分:0 
回复 楼主 EricZhan
打错题目了,是将链表1中与链表2相同号码的结构体删去
2010-08-08 07:49
灰色代言
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-08-08 19:15
快速回复:C语言结构体一人条问题:求高手检错
数据加载中...
 
   



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

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