|
发表于 2018-4-3 09:09:37
|
显示全部楼层
成对编写方便调试
请看下面代码
- 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
- {
-
- }
- }
复制代码
然后我就可以调试了 |
|