3 回答

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

TA貢獻(xiàn)1條經(jīng)驗(yàn) 獲得超0個(gè)贊
1、?if((i%4==0)&&(i%100!=0)||(i%400==0))
2、else if(year%4==0&&year%100!=0||year%400==0)
看看代碼中這2行有問(wèn)題沒(méi)(菜鳥(niǎo)路過(guò))
- 3 回答
- 0 關(guān)注
- 1720 瀏覽
添加回答
舉報(bào)