3 回答

TA貢獻(xiàn)96條經(jīng)驗(yàn) 獲得超118個贊
學(xué)一下設(shè)置斷點(diǎn)并一步一步走下去,
代碼行前面灰色部分右鍵,有個手的圖標(biāo),那個是設(shè)置斷點(diǎn)。
F11是運(yùn)行調(diào)試模式,F(xiàn)5是一步步走下去。有時候會出現(xiàn)無法關(guān)閉程序的情況,關(guān)了VC就行。
先設(shè)置在for(j=1;j<=a[i-1];j++) 前面,走一步1個月走到11月,設(shè)置在? ?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,所以會繼續(xù)輸出下去,34,35.。。。。。很奇怪,此時a[i-1](a[12-1])應(yīng)該是31,不變的。
重新走流程走到11月30日,特別關(guān)注了一下,走了一步發(fā)現(xiàn)a[i-1]=6,i=12,j=6.
至于到底是哪里有問題,你就自己再慢慢查吧。要下班了-。-
另外吐槽一下,感覺賦值每月的天數(shù)放在循環(huán)外面比較好。

TA貢獻(xiàn)1條經(jīng)驗(yàn) 獲得超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 關(guān)注
- 1703 瀏覽
添加回答
舉報