CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C++ 语言

这个程序哪里让你们觉得很乱? 给点改正意见

楼主ymcymc(小三子)2003-12-01 13:50:46 在 C/C++ / C++ 语言 提问

#include   "stdio.h"  
  #include   "malloc.h"  
  #define   LIST_INIT_SIZE   10  
  #define   LISTCREMENT   5  
  typedef   struct  
  {  
  char   *elem;  
  int   length;  
  int   listsize;  
  }sqlist;  
  bool   initlist(sqlist   &l)  
  {  
  l.elem=(char*)malloc(LIST_INIT_SIZE*sizeof(char));  
  if(!l.elem)  
  return   false;  
  l.length=0;  
  l.listsize=0;  
  return   true;  
  }  
  bool   listinsert(sqlist   &l,int   i,char   c)  
  {  
  if(i<1||i>l.length+1)return   false;  
  if(l.length>=l.listsize)  
  {  
  char   *p=(char*)realloc(l.elem,(l.listsize+LISTCREMENT)*sizeof(char));  
  if(!p)  
  return   false;  
  l.elem=p;  
  l.listsize+=LISTCREMENT;  
  }  
  char   *q=&(l.elem[i-1]);  
  char   *p=&(l.elem[l.length-1]);  
  for(;q<=p;++q)  
  *(p+1)=*p;  
  *q=c;  
  ++l.length;  
  return   true;  
  }  
  bool   listdelete(sqlist   &l,int   i,char   c)  
  {  
  if(i<1||i>l.length)return   false;  
  char   *p=&(l.elem[i-1]);  
  char   *q=&(l.elem[l.length-1]);  
  for(++p;p!=q;++p)  
  *(p-1)=*p;  
  --l.length;  
  return   true;  
  }  
  void   display(sqlist   &l)  
  {  
  for(char   *p=&(l.elem[0]);p<=&(l.elem[l.length-1]);++p)  
  printf("%3c",*p);  
  printf("\n\n\n");  
  }  
  void   mergelist(sqlist   &la,sqlist   &lb,sqlist   &lc)  
  {  
  lc.elem=(char*)malloc((la.length+lb.length)*sizeof(char));  
  lc.length=lc.listsize=la.length+lb.length;  
  char   *pa=la.elem;  
  char   *pa_last=la.elem+la.length-1;  
  char   *pb=lb.elem;  
  char   *pb_last=lb.elem+lb.length-1;  
  while(pa!=pa_last&&pb!=pb_last)  
  if(*pa<*pb)  
  *lc.elem++=*pa++;  
  else   *lc.elem++=*pb++;  
  while(pa<pa_last)*lc.elem++=*pa++;  
  while(pb<pb_last)*lc.elem++=*pb++;  
  }  
  int   main()  
  {  
  char   ch;  
  sqlist   l1,l2,l3;  
  initlist(l1);  
  initlist(l2);  
  for(char   c='A';c<='Z';++c)  
  {  
  listinsert(l1,c-'A'+1,c);  
  }  
  display(l1);  
  for(c='a';c<='z';++c)  
  {  
  listinsert(l2,c-'a'+1,c);  
  }  
  display(l2);  
  mergelist(l1,l2,l3);  
  display(l3);  
  return   0;  
  }  
  问题点数:20、回复次数:7Top

1 楼fireseed(【VC无敌,英明神武,千秋万代,一统江湖!】—奶油狗)回复于 2003-12-01 13:58:18 得分 8

等你写程序写的多了,过两年再回来看你的程序,你自然会明白!Top

2 楼fireseed(【VC无敌,英明神武,千秋万代,一统江湖!】—奶油狗)回复于 2003-12-01 13:59:36 得分 0

编程规范这个话题不是一句两句就能说完的。  
   
  但要一个新手去始终遵循其中的任何一条,都将变的非常困难!Top

3 楼ymcymc(小三子)回复于 2003-12-01 14:28:35 得分 0

你能不能举个例子说一下,哪一句不好Top

4 楼fireseed(【VC无敌,英明神武,千秋万代,一统江湖!】—奶油狗)回复于 2003-12-01 14:37:21 得分 0

所有的  
  你的变量名符合什么命名法吗?  
  你的代码有注释吗?  
  你的算法有括号表示优先级吗?  
  你的缩进有规范吗?  
  你的大括号全吗?  
  ……Top

5 楼chengsion()回复于 2003-12-01 18:03:46 得分 6

不知道,你是习惯用C还是习惯用C++,如果用C++的话,请尽量用class代替你的struct,  
  再类中的成员要加上可见性的说明,这样会帮助你少犯错误。Top

6 楼ymcymc(小三子)回复于 2003-12-01 18:24:26 得分 0

那是一段C代码Top

7 楼qufan(打死不回头)回复于 2003-12-01 19:04:04 得分 6

看看林锐的高质量的c/c++编程  
  你就明白了  
  不过有时候我发现我也比你好不到那里去  
  sigh  
  Top

相关问题

  • 程序错在哪儿?怎么改正?(A NewBie Questiong...)
  • 程序错在哪儿?怎么改正??(A NewBie Questiong...)
  • 请问下面这个程序错在哪里,怎么改正呢?
  • 调用子程序时不能使用括号,如何改正呀?
  • 下面的程序错在这个地方,不过不知道怎么改正,请大家帮帮忙,改正错误.
  • 一个程序在编译时通过了,但是运行时出现异常,请教怎么改正
  • 这样写的程序犯了什么错误?要如何改正?请高手们指教。^^
  • 简单的小程序编译通不过,那位老大帮我改正一下,谢谢。
  • 想学习 固件 -> 驱动程序 -> 应用程序 给点意见
  • 如何改正?

关键词

  • listsize
  • listcrement
  • sqlist
  • elem
  • length
  • char

得分解答快速导航

  • 帖主:ymcymc
  • fireseed
  • chengsion
  • qufan

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo