您的位置:首页 > 其它

第五章 选择结构

2014-09-16 20:28 113 查看
if (表达式)

{

语句

}

表达式为真,执行语句,在执行花扩号外。 反之 ,跳过语句 ,直接执行花扩号外。

if-else

if (表达式)

{

语句1

}

else

{

语句2

}

表达式为真 ,执行语句1 ,跳过语句2向下继续执行。 反之,跳过语句1,执行语句2 ,继续执向下执行。

switch

switch (表达式)

{

case 常量表达式1:

语句1

break;

case 常量表达式2:

语句2

break;

. ......

case 常量表达式n:

语句n

break;

default:

语句n+1

}

break表示case这句结束,可以不写,代表 和下一个case语句都执行

/*1.运输公司对用户计算运费.路程越远每公里运费越低.

每公里每吨货物的基本运费p = 3;用户需要输入货

物重量w和距离s;根据距离的不同折扣d不同(具体见)

下面的表格,要求根据用户输入的w和s,计算出总运费f

其计算公式为f=p*w*s*(1-d)。

s < 250公里 0 折扣

250 <= s < 500 2% 折扣

500 <= s < 1000 5% 折扣

1000<=s < 2000 8% 折扣

2000<=s < 3000 10% 折扣

3000<=s 15% 折扣

*/

#include<stdio.h>

void main()

{

double p,w,s;

printf("请输入货物重量和距离(用空格间隔)");

scanf("%lf %lf",&w,&s);

p=3;

if (s<250)

{

printf("总运费为:%lf",p*w*s*(1-0));

}

if (s>=250&&s<500)

{

printf("总运费为:%lf",p*w*s*(1-0.02));

}

if (s>=500&&s<1000)

{

printf("总运费为:%lf",p*w*s*(1-0.05));

}

if (s>=1000&&s<2000)

{

printf("总运费为:%lf",p*w*s*(1-0.08));

}

if (s>=2000&&s<3000)

{

printf("总运费为:%lf",p*w*s*(1-0.10));

}

if (s>=3000)

{

printf("总运费为:%lf",p*w*s*(1-0.15));

}

printf("\n");

}

/*

3.请分别输入年月日三个数值,计算出这是这一年的第几天?

(提示:要考虑闰年和2月的情况)

*/

#include <stdio.h>

void main()

{

int year,month,day,sum;

printf("请分别输入年月日三个数值,逗号分隔:");

scanf("%d,%d,%d",&year,&month,&day);

/*

switch(month)

{

case 1:

sum = day;

break;

case 2:

sum = 31 + day;

break;

case 3:

sum = 31 + 28 + day;

break;

case 4:

sum = 31 + 28 + 31 + day;

break;

case 5:

sum = 31 + 28 + 31 + 30 + day;

break;

case 6:

sum = 31 + 28 + 31 + 30 + 31 + day;

break;

case 7:

sum = 31 + 28 + 31 + 30 + 31 + 30 + day;

break;

case 8:

sum = 31 + 28 + 31 + 30 + 31 + 30 + 31 + day;

break;

case 9:

sum = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + day;

break;

case 10:

sum = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + day;

break;

case 11:

sum = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + day;

break;

case 12:

sum = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + day;

break;

}

*/

switch(month)

{

case 12:

sum += 30;

case 11:

sum += 31;

case 10:

sum += 30;

case 9:

sum += 31;

case 8:

sum += 31;

case 7:

sum += 30;

case 6:

sum += 31;

case 5:

sum += 30;

case 4:

sum += 31;

case 3:

sum += 28;

case 2:

sum += 31;

case 1:

sum += day;

}

if(month > 2)

{

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

{

sum += 1;

}

}

printf("%d年%d月%d日是当年的第%d天!\n",year,month,day,sum);

}

/*

2.企业发放奖金,根据员工销售额提成.(超出部分)

假如员工的销售额是i,那么计算规则如下:

i < 10万 10%提成

10 <= i < 20万 7.5%提成

20 <= i < 40万 5%提成

40 <= i < 60万 3%提成

60 <= i < 100万 1.5%提成

100<=i 1%提成

输入员工的销售额,计算出他的提成。

*/

#include <stdio.h>

void main()

{

float sales,reward;

printf("请输入员工的销售额:");

scanf("%f",&sales);

if(sales < 100000)

{

reward = sales * 0.1f;

}

else if(sales < 200000)

{

reward = 10000 + (sales - 100000) * 0.075f;

}

else if(sales < 400000)

{

reward = 10000 + 7500 + (sales - 200000) * 0.05f;

}

else if(sales < 600000)

{

reward = 10000 + 7500 + 10000 + (sales - 400000) * 0.03f;

}

else if(sales < 1000000)

{

reward = 10000 + 7500 + 10000 + 6000 + (sales - 600000) * 0.015f;

}

else

{

reward = 10000 + 7500 + 10000 + 6000 + 6000 + (sales - 1000000) * 0.01f;

}

printf("该员工的提成是:%.2f\n",reward);

}



#include<stdio.h>

void main()

{

double i;

printf("请输入员工销售额(单位万):");

scanf("%lf",&i);

if (i<10)

{

printf("提成为:%lf",i*0.10);

}

if (i>=10&&i<20)

{

printf("提成为:%lf",(10*0.10)+((i-10)*0.075));

}

if (i>=20&&i<40)

{

printf("提成为:%lf",10*0.10+10*0.075+(i-20)*0.05);

}

if (i>=40&&i<60)

{

printf("提成为:%lf",10*0.10+10*0.075+20*0.05+(i-40)*0.03);

}

if (i>=60&&i<100)

{

printf("提成为:%lf",10*0.10+10*0.075+20*0.05+20*0.03+(i-60)*0.015);

}

if (i>=100)

{

printf("提成为:%lf",10*0.10+10*0.075+20*0.05+20*0.03+40*0.015+(i-100)*0.01);

}

printf("\n");

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: