亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

這段代碼如何運行的,請教各位

這段代碼如何運行的,請教各位

C
街角瘋 2016-07-25 10:16:17
#include <stdio.h>int main()?{?? ? /* 定義需要計算的日期 */? ? int year = 2008;? ? int month = 8;? ? int day = 8;? ? switch(month-1)? ? {? ? ? ? case 12:day+=31;? ? ? ? case 11:day+=30;? ? ? ? case 10:day+=31;? ? ? ? case 9:day+=30;? ? ? ? case 8:day+=31;? ? ? ? case 7:day+=31;? ? ? ? case 6:day+=30;? ? ? ? case 5:day+=31;? ? ? ? case 4:day+=30;? ? ? ? case 3:day+=31;? ? ? ? case 2:if((year%4==0 && year%100) || year%400==0) day+=29; else day+=28;? ? ? ? case 1:day+=31;? ? }? ? printf("2008年8月8日是該年的第%d天",day); return 0;}這是如何進行運行的?
查看完整描述

2 回答

已采納
?
不偏不易

TA貢獻96條經驗 獲得超118個贊

首先這里的代碼是沒有錯的,計算是8月8日是第幾天,那前7月是全的,8月只過8天,day=8,然后用day去一個個月加過去,7月:day=day+31;以此類推到1月:day=day+31。

month為8,switch里條件month-1為7,一點問題都沒有。

看一下switch那一章。有一句話,你可能沒有注意,大概是當沒有break的時候,switch會向下一直執行下去。

這里的話,month-1為7的時候,就會從case 7 ,一直到case 1,然后才結束switch.

所以這里花式的計算了足月的天數,8月8日,中,switch里幫你計算了8天加上1-7月的天數和。


附:http://www.xianlaiwan.cn/code/5207

在使用switch語句時還應注意以下幾點:

1、在case后的各常量表達式的值不能相同,否則會出現錯誤。

2、在case子句后如果沒有break;會一直往后執行一直到遇到break;才會跳出switch語句。


查看完整回答
3 反對 回復 2016-07-25
  • 2 回答
  • 0 關注
  • 1293 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號