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

為了賬號安全,請及時綁定郵箱和手機立即綁定

求解釋switch語句

#include <stdio.h>
int main()
{
??? /* 定義需要計算的日期 */
??? int year = 2008;
??? int month = 8;
??? int day = 8;
??? /*
???? * 請使用swtich語句,if...else語句完成本題
???? * 如有想看小編思路的,可以點擊左側任務中的“不會了怎么辦”
???? * 小編還是希望大家獨立完成哦~
???? */
??? int date = 0;
??? switch (month)
??? {
??????? case 12:??? date += 30;
??????? case 11:??? date += 31;
??????? case 10:??? date += 30;
??????? case 9:??? date += 31;
??????? case 8:??? date += 31;
??????? case 7:??? date += 30;
??????? case 6:??? date += 31;
??????? case 5:??? date += 30;
??????? case 4:??? date += 31;
??????? case 3:??? if(year%400 != 0 && year%4 == 0){
??????????????????????? date += 29;
??????????????????? }else{
??????????????????????? date += 28;}
??????? case 2:??? date += 31;
??????? default:??? date += 8,printf("2008年8月8日是該年的第%d天",date);break;
??? }
??? return 0;
}

其中case是怎么分組的?

正在回答

2 回答

你寫的程序中,month是從12倒序排列至2,也就是說每次case 當前month后date的值為當前month-1月的天數(shù),但是由于沒有break,所以繼續(xù)累加至case 2,此時的date已經(jīng)相當于從1月累加至當前month-1的總天數(shù)了,最后再加上default中的當前月天數(shù),得到的結果同樣是正解

1 回復 有任何疑惑可以回復我~
#1

fl1995

樓主的代碼有問題吧,換一個不是31天的月份試試
2016-10-04 回復 有任何疑惑可以回復我~
#2

橘右京的橘子掉了 提問者 回復 fl1995

代碼沒問題,運行結果正確,就是不理解它的case怎么分的組
2016-10-04 回復 有任何疑惑可以回復我~
#3

橘右京的橘子掉了 提問者

非常感謝!
2016-10-04 回復 有任何疑惑可以回復我~
#4

fl1995 回復 橘右京的橘子掉了 提問者

舉個例子,樓主可以測試7月份的某一天,會比其余方法的值多1。因為樓主代碼在跑8月8號的時候,是計算了2月1號到8月31號,再加上8月1號到8月8號,因為1月份和8月份一樣是31天,所以結果沒有錯誤,這只能說是巧合。換一個和1月份天數(shù)不同的月份計算結果就會有錯誤~。十一玩了幾天,也沒學,也沒看。。
2016-10-08 回復 有任何疑惑可以回復我~
查看1條回復

我們算天數(shù)的時候是怎么算的?比如說三月七日,是不是需要計算已經(jīng)過去的月份的總天數(shù)(一月和二月)再加上當前月的天數(shù)(7天),所以程序也這樣設計,sum代表case month之前共有多少天(比如說case 3:執(zhí)行的結果就是sum=31+28=59;)得到當前的sum后break跳出switch,最后再加上day的天數(shù)就得到了所求值

switch(month)
{
????case?1:sum=0;break;
????case?2:sum=31;break;
????case?3:sum=59;break;
????case?4:sum=90;break;
????case?5:sum=120;break;
????case?6:sum=151;break;
????case?7:sum=181;break;
????case?8:sum=212;break;
????case?9:sum=243;break;
????case?10:sum=273;break;
????case?11:sum=304;break;
????case?12:sum=334;break;
}
????sum?+=?day;//此時的sum即為所求


2 回復 有任何疑惑可以回復我~
#1

橘右京的橘子掉了 提問者

謝謝,了解了
2016-10-04 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
C語言入門
  • 參與學習       926892    人
  • 解答問題       21419    個

C語言入門視頻教程,帶你進入編程世界的必修課-C語言

進入課程

求解釋switch語句

我要回答 關注問題
微信客服

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

幫助反饋 APP下載

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

公眾號

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