| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 410 人关注过本帖
标题:求大神帮忙看一下这个程序那有问题为啥输不出结果?
只看楼主 加入收藏
梦巷
Rank: 2
等 级:论坛游民
帖 子:14
专家分:15
注 册:2015-4-18
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
求大神帮忙看一下这个程序那有问题为啥输不出结果?
#include<stdio.h>
#include<stdlib.h>
typedef struct stdent
{
    int num;
    struct stdent *next;
}tu;
tu *creat( int n)
{
    tu *p1,*p2,*head;
    int i=1;
    p1=p2=head=(tu*)malloc(sizeof(tu));
    while(i<=n)
    {
        p1=(tu*)malloc(sizeof(tu));
        printf("请输入第%d个数据:",i);
        scanf("%d",&p1->num);
        p2->next=p1;
        p2=p1;
        i++;
    }
    p2->next=NULL;
    return head;        
}
 tu *pai(tu *la,tu *lb)
 {
     tu *p1,*p2,*p3;
     p1=la->next;
    p2=lb->next;
    la->next=NULL;
     while(p1!=NULL&&p2!=NULL)
     {
         if(p1->num<p2->num)
         {
            
         p3=p1->next;
         p1=la->next;
         la->next=p1;
         p1=p3;
     }
     else
     {
         p3=p2->next;
         p2=la->next;
         la->next=p2;
         p2=p3;        
     }
}
     while(p1!=NULL)
     {
         p3=p1->next;
         p1=la->next;
         la->next=p1;
         p1=p3;
     }
     while(p2!=NULL)
     {
         p3=p2->next;
         p2=la->next;
         la->next=p2;
         p2=p3;   
     }
     return la;
 }
 void printlist(tu *h)
  {
      tu *p;
      p=h->next;
      while(p!=NULL)
      {
          printf("%d\n",p->num);
          p=p->next;
      }
  }
  main( )
      {   
          tu *la,*lb,*head;
          int n;
          printf("请输入链表la的节点数");
        scanf("%d",&n);
          la=creat(n);
          printlist(la);
          printf("请输入链表lb的节点数");
        scanf("%d",&n);
          lb=creat(n);
          printlist(lb);
          printf("合并降序后的链表为\n");
         head=pai(la,lb);   
          printlist(head);
      }
搜索更多相关主题的帖子: include return 
2015-05-15 22:07
qq1761442432
Rank: 2
等 级:论坛游民
帖 子:14
专家分:14
注 册:2015-1-13
收藏
得分:5 
说一下我的看法,你的程序没有指向数据域吧!
2015-05-15 22:19
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:15 
#include<stdio.h>
#include<stdlib.h>
typedef struct stdent
{
    int num;
    struct stdent *next;
}tu;
tu *creat( int n)
{
    tu *p1,*p2,*head;
    int i=1;
    p1=p2=head=(tu*)malloc(sizeof(tu));
    while(i<=n)
    {
        p1=(tu*)malloc(sizeof(tu));
        printf("请输入第%d个数据:",i);
        scanf("%d",&p1->num);
        p2->next=p1;
        p2=p1;
        i++;
    }
    p2->next=NULL;
    return head;        
}
tu *pai(tu *la,tu *lb)
{
     tu *p1,*p2,*p3=la;
     p1=la->next;
     p2=lb->next;
     while(p1!=NULL&&p2!=NULL)
     {
         if(p1->num<p2->num)
         {
         p3->next=p1;
         p1=p1->next;
         p3=p3->next;
     }
     else
     {
         p3->next=p2;
         p2=p2->next;
         p3=p3->next;   
     }
}
     while(p1!=NULL)
     {
         p3->next=p1;
         p1=p1->next;
         p3=p3->next;
     }
     while(p2!=NULL)
     {
         p3->next=p2;
         p2=p2->next;
         p3=p3->next;   
     }
     return la;
}
void printlist(tu *h)
  {
      tu *p;
      p=h->next;
      while(p!=NULL)
      {
          printf("%d\n",p->num);
          p=p->next;
      }
  }
  main( )
      {   
          tu *la,*lb,*head;
          int n;
          printf("请输入链表la的节点数");
        scanf("%d",&n);
          la=creat(n);
          printlist(la);
          printf("请输入链表lb的节点数");
        scanf("%d",&n);
          lb=creat(n);
          printlist(lb);
          printf("合并降序后的链表为\n");
          head=pai(la,lb);   
          printlist(head);
      }

剑栈风樯各苦辛,别时冰雪到时春
2015-05-15 22:26
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
头插法逆序处理的话
tu *pai(tu *la,tu *lb){
     tu *p1,*p2,*p3,*lc=(tu*)malloc(sizeof(tu));
     p1=la->next;
     p2=lb->next;
     lc->next=NULL;  
     while(p1!=NULL&&p2!=NULL){
         if(p1->num<p2->num){
         p3=p1->next;
         p1->next=lc->next;
         lc->next=p1;
         p1=p3;
        }
         else{
         p3=p2->next;
         p2->next=lc->next;
         lc->next=p2;
         p2=p3;  
         }  
     }
     while(p1!=NULL){
         p3=p1->next;
         p1->next=lc->next;
         lc->next=p1;
         p1=p3;
     }
     while(p2!=NULL){
         p3=p2->next;
         p2->next=lc->next;
         lc->next=p2;
         p2=p3;
     }
     return lc;
}

剑栈风樯各苦辛,别时冰雪到时春
2015-05-16 09:43
快速回复:求大神帮忙看一下这个程序那有问题为啥输不出结果?
数据加载中...
 
   



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

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