成对编写方便调试
请看下面代码void deletelist(Dulinklist *L)//删除某指定元素并用返回其值
{
int i, j, e;
Dulinklist p, q;
p = (*L);
j = 0;
printf("请问您想删除哪一号的元素内容:");
scanf("%d", &i);
while(p->next&&j<i - 1)
{
p = p->next;
++j;
}
if(!(p->next) || j>i - 1)
printf("删除位置有误。\n");
else
{
q = p->next;
e = q->data;
p->next = q->next;
q->next->prior = p;
free(q);
}
}
假设我写到else后面时怀疑上面是不是哪里写错了?
我现在需要调试一下,看看上面那部分代码是不是按我预期那样工作
那么,按照你的想法,现在程序应该是这个样子
因为不是成对编写吗void deletelist(Dulinklist *L)//删除某指定元素并用返回其值
{
int i, j, e;
Dulinklist p, q;
p = (*L);
j = 0;
printf("请问您想删除哪一号的元素内容:");
scanf("%d", &i);
while(p->next&&j<i - 1)
{
p = p->next;
++j;
}
if(!(p->next) || j>i - 1)
printf("删除位置有误。\n");
else
{
可是这样无法通过编译,因为括号不匹配
如果成对编写,那么程序现在应该是这个样子void deletelist(Dulinklist *L)//删除某指定元素并用返回其值
{
int i, j, e;
Dulinklist p, q;
p = (*L);
j = 0;
printf("请问您想删除哪一号的元素内容:");
scanf("%d", &i);
while(p->next&&j<i - 1)
{
p = p->next;
++j;
}
if(!(p->next) || j>i - 1)
printf("删除位置有误。\n");
else
{
}
}
然后我就可以调试了 |