目录
找到最简样例
- 找到一个最简单的样例,让程序出错。
- 程序错误输出?正确输出?
打印变量和数组
- 程序每一步打印重点变量和数组观察变化过程。如cout<<"x="<<x<<",y="<<y<<endl;等。
- 示例:(线段树建树)
void build(ll iSeg,ll l,ll r){ ll sum=0; for(int i=l;i<=r;i++){ sum+=a[i]; } tr[iSeg]=(Segment){l,r,r-l+1,sum,0}; // cout<<iSeg<<" "<<l<<" "<<r<<" "<<tr[iSeg].sum<<endl; if(l==r){ return; } ll m=(l+r)/2; build(iSeg*2,l,m); build(iSeg*2+1,m+1,r); }
找到错误
- 手算推导每一步变量和数组应该是几才正确,找到数值的具体值。
- 定位错误。(模块 -> 函数 -> 语句)
最后一步
- 最后,针对错误修改。
- 若还有错误,重复以上。