3 回答

TA貢獻96條經驗 獲得超118個贊
學一下設置斷點并一步一步走下去,
代碼行前面灰色部分右鍵,有個手的圖標,那個是設置斷點。
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.
至于到底是哪里有問題,你就自己再慢慢查吧。要下班了-。-
另外吐槽一下,感覺賦值每月的天數放在循環外面比較好。

TA貢獻1條經驗 獲得超0個贊
1、?if((i%4==0)&&(i%100!=0)||(i%400==0))
2、else if(year%4==0&&year%100!=0||year%400==0)
看看代碼中這2行有問題沒(菜鳥路過)
- 3 回答
- 0 關注
- 1706 瀏覽
添加回答
舉報