首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

这段代码编译通过,在输出上存在有关问题吗

2012-03-09 
求助:这段代码编译通过,在输出上存在问题吗?//这段代码编译通过,在输出上存在问题吗?#includestdio.h#in

求助:这段代码编译通过,在输出上存在问题吗?
//这段代码编译通过,在输出上存在问题吗?
#include   <stdio.h>
#include   <stdlib.h>

typedef   struct{
        float     *elem;
        int         length;
        int       listsize;
      }sqlist;
  void   initlist(sqlist     *la)
  {la-> elem=(float*)malloc(100*sizeof(float));
    if(!la-> elem)       exit(-1);
    la-> length=0;la-> listsize=100;
    return;
  }
  void   fuzhi(sqlist   *la)
  {float   x;
    int   i,n;
    printf( "pllease   input   how   much   emplete: ");
    scanf( "%d ",&n);
    for(i=0;i <n;i++)
      {scanf( "%f ",&x);   la-> elem[i]=x;}
    la-> length=n;return;
  }
  void   aa(sqlist   *la,sqlist   *lb,sqlist   *lc)
  {float   *pa,*pb,*pc,*pa_last,*pb_last;
    pa=la-> elem;pb=lb-> elem;
    lc-> listsize=lc-> length=la-> length+lb-> length;
    pc=lc-> elem=(float*)malloc(lc-> listsize*sizeof(float));
    if(!lc-> elem)     exit(-2);
    pa_last=la-> elem+la-> length-1;
    pb_last=lb-> elem+lb-> length-1;
    while(pa <=pa_last&&pb <=pb_last)
      if(*pa <=*pb)       *pc++=*pa++;
      else                     *pc++=*pb++;
    while(pc <=pa_last)     *pc++=*pa++;
    while(pc <=pb_last)     *pc++=*pa++;
  }
  void   shuchu(sqlist   *lb)
  {int   i;
    for(i=0;i <lb-> length;i++)
    printf( "%4.2f\n ",   lb-> elem[i]);
  }
main()
{sqlist   a,b,c;
  sqlist   *la=&a,*lb=&b,*lc=&c;
  initlist(la);initlist(lb);
  fuzhi(la);fuzhi(lb);
  aa(la,lb,lc);
  shuchu(lc);
}


[解决办法]
while(pa <= pa_last && pb <= pb_last)
if(*pa <= *pb)
*pc++ = *pa++;
else
*pc++ = *pb++;
while(pc <= pa_last)
*pc++ = *pa++;
while(pc <= pb_last)
*pc++ =* pa++;
________________________________________________________________________
while(pa <=pa_last && pb <=pb_last)
{
if(*pa <= *pb)
*pc++ = *pa++;
else
*pc++ = *pb++;
}
while(pa <= pa_last)
*pc++ = *pa++;
while(pb <= pb_last)
*pc++ = *pb++;

热点排行