一、IF的使用案例
编写程序,输入一个x的值,按以下函数计算并输出y的值。
y的值分别为: -1 (x<0) y= 0 (x=0) 1 (x>0)
//FileName: chap3_15.c
#include <stdio.h>
int main( )
{
int x,y;
scanf("%d",&x);
if(x<0)
y=-1;
else
if(x==0)
y=0;
else
y=1;
printf("y=%d\n",y);
return 0;
}
问题如下:
为提倡节约用水,按照每月每户每人3吨水进行定量,标准以内的用水量水费为每吨1.51元,超额的部分2倍付费。需要我们编写程序来解决每户每个月要交的水费问题。
代码:
#include <stdio.h>
#define DOSAGE 3
#define CRITERION 1.51
main()
{
int person,ration;
float previous,behind,water,charge;
printf("请输入人口数、上月水表读数、本月水表读数:");
scanf("%d %f %f",&person,&previous,&behind);
ration=person*DOSAGE;
water=behind-previous;
if(water<=ration) /* 条件判断,分支选择 */
charge=water*CRITERION;
else
charge=ration*CRITERION+(water-ration)*2*CRITERION;
printf("\n用户水费是:%.2f\n",charge);
}
if与else的配对原则?
写出程序运行结果。
#include <stdio.h>
int main()
{ int a=100,x=10,y=20,ok1=5,ok2=0;
if(x<y)
if(y!=10)
if(!ok1)
a=1;
else
if(ok2)
a=10;
a=-1;
printf(“%d\n”,a);
}
二、Swich语句
C语言提供了一种switch语句专门处理多分支的情形,使程序变得简洁易懂。 switch语句的一般形式如下:
switch(表达式)
{
case 常量表达式1: 语句块1
case 常量表达式2: 语句块2
…
case 常量表达式n: 语句块n
default: 语句块n + 1
}
功能:首先计算switch后面括号内的“表达式”,然后依次与各个case后面 的“常量表达式”的值进行比较,当“表达式”的值与某一个case后面的“常量表 达式”的值相等时,就选择这个标号作为入口,执行该case子句后面的语句块, 并继续执行其后的所有case子句直到程序结束。如果“表达式”的值与所有case 后面的“常量表达式”的值都不相等,则执行default后面的语句。