LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 797|回复: 10

请大家帮我看看这个函数有什么问题?谢谢

[复制链接]
发表于 2004-12-5 22:08:02 | 显示全部楼层 |阅读模式
struct student *sort(struct student *head)/*冒泡排序*/
{ struct student *p1,*p2;
struct student *temp;
p1=head;
p2=p1->next;

if(p1==NULL||p2==NULL)/*排除空链表和一个链表情况*/
{return(head);
printf(">>>>>>>Test!!!!\n");}


else{
  for(;p2->next!=NULL;p1=p1->next)
   for(p2=p1->next;p2->next!=NULL;p2=p2->next)
   if((p1->next->num)>(p2->next->num))
     {temp=p1->next->next;
      p1->next->next=p2->next->next;
      p2->next->next=temp;

   

     temp=p1->next;
     p1->next=p2->next;
     p2->next=temp;
   }
return(head);}
  }
发表于 2004-12-5 22:10:01 | 显示全部楼层
请把缩进加上,不然太难看。
发表于 2004-12-6 09:14:33 | 显示全部楼层
p2=p1->next;

if(p1==NULL||p2==NULL)/*排除空链表和一个链表情况*/
改为
p2=p1;

if(!p1||!p1->next)/*排除空链表和一个链表情况*/
 楼主| 发表于 2004-12-6 09:17:23 | 显示全部楼层
struct student *sort(struct student *head)/*冒泡排序*/
{ struct student *p1,*p2;
  struct student *temp;
  p1=head;
  p2=p1->next;

if(p1==NULL||p2==NULL)/*排除空链表和一个链表情况*/
   {return(head);
    printf(">>>>>>>Test!!!!\n");}


else{
      for(;p2->next!=NULL;p1=p1->next)
         for(p2=p1->next;p2->next!=NULL;p2=p2->next)
             if((p1->next->num)>(p2->next->num))
                {temp=p1->next->next;
                 p1->next->next=p2->next->next;
                 p2->next->next=temp;



                  temp=p1->next;
                  p1->next=p2->next;
                  p2->next=temp;
                                }
return(head);}
}

是不是这样好点?不好意思,没养成写代码的良好的习惯
 楼主| 发表于 2004-12-6 09:17:23 | 显示全部楼层
struct student *sort(struct student *head)/*冒泡排序*/
{ struct student *p1,*p2;
  struct student *temp;
  p1=head;
  p2=p1->next;

if(p1==NULL||p2==NULL)/*排除空链表和一个链表情况*/
   {return(head);
    printf(">>>>>>>Test!!!!\n");}


else{
      for(;p2->next!=NULL;p1=p1->next)
         for(p2=p1->next;p2->next!=NULL;p2=p2->next)
             if((p1->next->num)>(p2->next->num))
                {temp=p1->next->next;
                 p1->next->next=p2->next->next;
                 p2->next->next=temp;



                  temp=p1->next;
                  p1->next=p2->next;
                  p2->next=temp;
                                }
return(head);}
}

是不是这样好点?不好意思,没养成写代码的良好的习惯
 楼主| 发表于 2004-12-6 09:24:04 | 显示全部楼层
对不起,我已经排好了,但是以提交就变成那样了,不好意思
发表于 2004-12-6 11:10:42 | 显示全部楼层
最初由 dale0110 发表
对不起,我已经排好了,但是以提交就变成那样了,不好意思

这直接这样粘贴代码是保持不了缩进的,要按照置顶的论坛索引中介绍的方法去做。
 楼主| 发表于 2004-12-6 20:17:19 | 显示全部楼层
struct student *sort(struct student *head)/*冒泡排序*/
{ [CODE]struct student *p1,*p2;
   struct student *temp;
   p1=head;
  p2=p1->next;

  

  if(p1==NULL||p2==NULL)/*排除空链表和一个链表情况*/
   [CODE]
     {return(head);
      printf(">>>>>>>Test!!!!\n");}
        [/CODE]

  else{
   [CODE] for(;p2->next!=NULL;p1=p1->next)
      [CODE]for(p2=p1->next;p2->next!=NULL;p2=p2->next)
      [CODE] if((p1->next->num)>(p2->next->num))
        [CODE] {temp=p1->next->next;
                  p1->next->next=p2->next->next;
                   p2->next->next=temp;



                   temp=p1->next;
                   p1->next=p2->next;
                   p2->next=temp;
         }[/CODE][/CODE][/CODE][/CODE]
    return(head);}
}
试一下是这样缩进么?按刚才师兄的改法修改,还是不行啊
发表于 2004-12-6 21:07:23 | 显示全部楼层
  1. struct student *sort(struct student *head)/*冒泡排序*/
  2. { struct student *p1,*p2;
  3.    struct student *temp;
  4.    p1=head;
  5.   p2=p1->next;

  6.   

  7.   if(p1==NULL||p2==NULL)/*排除空链表和一个链表情况*/
  8.    
  9.      {return(head);
  10.       printf(">>>>>>>Test!!!!\n");}
  11.         

  12.   else{
  13.    for(;p2->next!=NULL;p1=p1->next)
  14.      for(p2=p1->next;p2->next!=NULL;p2=p2->next)
  15.      if((p1->next->num)>(p2->next->num))
  16.          {temp=p1->next->next;
  17.                   p1->next->next=p2->next->next;
  18.                    p2->next->next=temp;



  19.                    temp=p1->next;
  20.                    p1->next=p2->next;
  21.                    p2->next=temp;
  22.          }
  23.     return(head);}
  24. }
  25. 试一下是这样缩进么?按刚才师兄的改法修改,还是不行啊
复制代码
发表于 2004-12-6 21:14:27 | 显示全部楼层
只要在代码的开始处加上[code],在代码的结束处加上[/code]就可以了。就象这样:
[code]
你的代码。。。
[/code]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表