9月11日

一.今天課堂老師主要講了 switch 多分支語句。

結構:

switch(條件表達式)

{?

case 常量表達式1:

語句1;break;

case 常量表達式2:

語句2;break;

default

語句表達式n

}

注意點:

1.條件表達式必須為整形;

2.語句可以加嵌套;

3.一定要加break;

? ? ?若不加break,執行語句后面所有的其他case;

4.用if else 完全可以替代switch,但結構沒有switch清晰明了;

二. 今天晚上研究了很久老師留的思考題(算日期差)

#include<stdio.h>

#include<math.h>

int date(int x,int y,int z)

{

int d=0;

for(int i=0;i<x;i++)

{

if((i%4==0&&i%100!=0)||i%400==0)

d=d+366;

else

d=d+365;

}

for(int i=2;i<=y;i++)

{

if((x%4==0&&x%100!=0)||x%400==0)

switch(i-1)

{case 1:d+=31;break;

case 2:d+=29;break;

case 3:d+=31;break;

case 4:d+=30;? break;

case 5:d+=31;break;

case 6:d+=30;break;

case 7:d+=31;break;

case 8:d+=31;break;

case 9:d+=30;break;

case 10:d+=31;break;

case 11:d+=30;break;

}

else

switch(i-1)

{

case 1:d+=31;break;

case 2:d+=28;break;

case 3:d+=31;break;

case 4:d+=30;? break;

case 5:d+=31;break;

case 6:d+=30;break;

case 7:d+=31;break;

case 8:d+=31;break;

case 9:d+=30;break;

case 10:d+=31;break;

case 11:d+=30;break;

}

}

d=d+z;

return(d);

}

int main()

{int a1,b1,c1,a2,b2,c2,x,y,z,sum=0;

while(1)

{

scanf("%d,%d,%d,%d,%d,%d",&a1,&b1,&c1,&a2,&b2,&c2);

x=date(a1,b1,c1);

y=date(a2,b2,c2);

sum=y-x;

z=fabs(sum);

printf("%d\n",(int)z);

}

}

心得:

1.用函數可以簡化相同運算;

2.C-Free函數構造與C-tubo不同:

? ? ? 函數變量類型定義需放在括號里;

? ? ? 且不加;

3.計算日期差思路是算出每個日期到公元0年1月1日的日期差,再做差,且差正負由絕對值函數去掉;

4.絕對值函數輸出為浮點型,如果整形輸出,則為0,需轉型為整形,再輸出。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容