对有错误或不正当行为的人、团体、国家提出告诫,使认识所应负的责任。
我现在看见代码就想吐
#define ok 1
#define OVERFLOW -2
#define list_init_size 100//线性表存储空间的初始分配量
#define listincrement 10//线性表存储空间分配增量
typedef int status;
typedef int elemtype;//类型定义
typedef struct{
elemtype *elem;//存储空间基址
int length;//当前长度
int listsize;//当前分配的存储容量 (以si
//在线性表中插入一个元素
status listinsert_sq(sqlist l,int i,elemtype e )//构造一个空线性表L
{/*在顺序线性表L中的第i个位置之前插入新的元素e
i的合法值为1<=i<=listlength-sq(L)+1*/
printf("输入元素个数:");
scanf("%d",&n);
Initlist(l,n);
printf("输入线性表元素:");
printf("插入位子与元素:");
scanf("%d%d",&s,&e);
listinsert_sq(l,s,e);
outputlist(l);
printf("程序结束!
");
}
程序中main函数中的l变量应作为全局变量,放在最最开始的那几行,在执行完函数时的过程中,l中三元素的值当然会变,但执行完,l就有返回执行前的状态了,函数在执行时会为括号中的各个参数创建一块空间,但执行完毕之后就会自动释放。
例如在执行status status Initlist(sqlist l,int list_number)时,编译器先为l建一个复制品,名字也叫l,在执行完这个函数后,那个复制的l就没了,只剩下原来的l,程序中的status listinsert_sq(sqlist l,int i,elemtype e )也是这个毛病,++l.length只在函数中改变了那个复制品的length值,执行完这个函数后l.length还是原来那个l.length(比预期的总少一),导致在执行插入操作后,程序输出总是少了最后
我就拿个也好。还有。我现在那个也可以看你怎么看待了,每个都挺漂亮的,第一个快点儿。你觉得呢?所以我就拿了。挺好看的。