9月11日

作者: 李响lx | 来源:发表于2017-09-11 22:27 被阅读0次

    一.今天课堂老师主要讲了 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,需转型为整形,再输出。

    相关文章

      网友评论

          本文标题:9月11日

          本文链接:https://www.haomeiwen.com/subject/czqqsxtx.html