【项目任务】
求以下分段函数的值。
【设计思路】
根据x的取值情况:当x的取值大于等于0时,另一种情况即为小于0,则y为x-1的值;还需要进一步分为两个分支,即x>0和x=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语句的嵌套。如果if和else的数目不相等,可以用花括号来确定配对关系。思考以下代码与以上代码的差异。
#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);
}
【项目任务】
输入一个年份,判断是否为闰年。
【设计思路】
要判断某一年是否闰年,关键是对从键盘上输入的年份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嵌套的层数没有限制,但当嵌套的层数较多时,容易使程序在逻辑上变得不清晰。