学一下设置断点并一步一步走下去,
代码行前面灰色部分右键,有个手的图标,那个是设置断点。
F11是运行调试模式,F5是一步步走下去。有时候会出现无法关闭程序的情况,关了VC就行。
先设置在for(j=1;j<=a[i-1];j++) 前面,走一步1个月走到11月,设置在 printf("%2d",j);前面,走一步一天,然后一步步看
我说一下我的查错过程
我看到是在12月31日后,判断条件
for(j=1;j<=a[i-1];j++) //输出日历,
{
printf("%2d",j);
if((z+j)%7==0) //判断换行
printf("\n");
else
printf(" ");
}
此时j=32,a[i-1]==32,所以会继续输出下去,34,35.。。。。。很奇怪,此时a[i-1](a[12-1])应该是31,不变的。
重新走流程走到11月30日,特别关注了一下,走了一步发现a[i-1]=6,i=12,j=6.
至于到底是哪里有问题,你就自己再慢慢查吧。要下班了-。-
另外吐槽一下,感觉赋值每月的天数放在循环外面比较好。