这个程序哪里让你们觉得很乱? 给点改正意见
#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




