第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

C語言編程中的一個bug,求大神指教

C語言編程中的一個bug,求大神指教

C
凡人0123 2016-05-10 14:56:47
這是一個打印日歷的代碼,我下面的代碼有一處有一個問題(加粗的那一個部分),我在定義變量的時候,為什么交換了順序以后就變好了,想請問一下這是為什么??#include <stdio.h>#include <math.h>main(){??int a[11];???//定義每個月數(shù)組?int z;????//定義判斷月初星期幾的條件?int year,x=0,y;??//定義輸入的年份,總天數(shù)x,每年天數(shù)y?int i,j;???//定義數(shù)組、循環(huán)變量?/*?int i,j;???//定義數(shù)組、循環(huán)變量?int a[11];???//定義每個月數(shù)組?int z;????//定義判斷月初星期幾的條件?int year,x=0,y;??//定義輸入的年份,總天數(shù)x,每年天數(shù)y?這里有一個bug,雖然不是太明白,但是交換一下位置,它就變好了。?*/?printf("請輸入年份\n");?scanf("%d",&year);?//獲取年份?for(i=1;i<year;i++)?//判斷瑞年?{??if((i%4==0)&&(i%100!=0)||(i%400==0))???y=366;??else ???y=365;??x=x+y;???}?x=x+1;????//X表示到本年第一天的總天數(shù)?for(i=1;i<=12;i++)?{??printf("\n\n      %d月\n\n",i);??printf("日? 一? 二? 三? 四? 五? 六 \n");??if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)?//確定每個月份的天數(shù)???a[i-1]=31;??else if(i==4||i==6||i==9||i==11)???a[i-1]=30;??else if(year%4==0&&year%100!=0||year%400==0)???a[i-1]=29;??else ???a[i-1]=28;??z=x%7;?????//判斷第一天是星期幾??for(j=0;j<z;j++)??//輸出空格???printf("??? ");??for(j=1;j<=a[i-1];j++)?//輸出日歷,??{????printf("%2d",j);???if((z+j)%7==0)??//判斷換行????printf("\n");???else????printf("? ");?????}??x=x+a[i-1];????//加到下一個月?}}?
查看完整描述

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)外面比較好。

查看完整回答
反對 回復(fù) 2016-05-11
?
jfhdibrbfjd

TA貢獻(xiàn)163條經(jīng)驗(yàn) 獲得超40個贊

http://img1.sycdn.imooc.com//57348ca90001083109050562.jpg就這個

查看完整回答
反對 回復(fù) 2016-05-12
?
NightRaid

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行有問題沒(菜鳥路過)

查看完整回答
反對 回復(fù) 2016-05-10
  • 3 回答
  • 0 關(guān)注
  • 1703 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號