您的位置: 网站首页 > 程序开发 > C语言程序设计案例教程 > 第四章 选择结构程序设计 > 【4.3 多分支程序设计案例】

4.3 多分支程序设计案例

 

4.3  多分支程序设计案例

案例4.6  分段函数求解

【项目任务】

求以下分段函数的值。

【设计思路】

根据x的取值情况:当x的取值大于等于0时,另一种情况即为小于0,则yx-1的值;还需要进一步分为两个分支,即x>0x=0

【程序代码】

#include <stdio.h>

main()

{

    int x,y;

   

    printf("请输入x的值:");

    scanf("%d",&x);

    if(x>0) y=x+1;

    else         if(x==0) y=x;       /*注意不能写成x=0*/

    else         if(x<0) y=x-1;      /*此处的if语句可以省略*/

    printf("x=%d,y=%d\n",x,y);

}

【运行结果】

请输入x的值:2

x=2,y=3

【知识拓展】

if语句中又包含一个或多个if语句时,称为if语句的嵌套。如果ifelse的数目不相等,可以用花括号来确定配对关系。思考以下代码与以上代码的差异。

#include <stdio.h>

main()

{

    int x,y;

   

    printf("请输入x的值:");

    scanf("%d",&x);

    if(x>=0)

        if(x>0) y=x+1;

        else y=x;

    else y=x-1;

    printf("x=%d,y=%d\n",x,y);

}

案例4.7  闰年的判断

【项目任务】

输入一个年份,判断是否为闰年。

【设计思路】

要判断某一年是否闰年,关键是对从键盘上输入的年份year构造一个表达式,即闰年的表示形式。根据题意,闰年应满足:不能被100整除时能被4整除,或能被400整除;除此之外均不是闰年。

【程序代码】

#include <stdio.h>

main()

{

    int year;

 

    printf("Please input year:");

    scanf("%d",&year);

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

       printf("%d is a leap year!\n",year);

    else

       printf("%d is not a leap year!\n",year);

}

【运行结果】

第一次运行:

Please input year:2000

2000 is a leap year

第二次运行:

Please input year:2007

2007 is not a leap year

【知识拓展】

如果要判断某年是否为非闰年,只须将判断式改写成:

!((year%100!=0&&year%4==0)||(year%400==0))

实现选择结构的控制语句有if语句、switch语句。if语句适用于单分支的情况,switch语句适用于多分支的情况,专门用于多路分支选择,比if语句的嵌套形式更清晰。

if语句有多种形式,任何一种if语句体中都可以出现其他if结构,这种语句被称为if语句的嵌套结构。在理论上,if嵌套的层数没有限制,但当嵌套的层数较多时,容易使程序在逻辑上变得不清晰。