第五章 选择结构
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");
}
{
语句
}
表达式为真,执行语句,在执行花扩号外。 反之 ,跳过语句 ,直接执行花扩号外。
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");
}
相关文章推荐
- 第五章 选择结构的程序设计
- 第五章 选择结构的程序设计
- WCF 第五章 行为 事务之选择一个事务协议-OleTx 或者WS-AT
- 多重if选择结构代码优化1
- 顺序结构和选择结构的个人见解---if else
- 选择结构语句---if语句,switch语句
- C++代码,数据结构-外部排序-置换-选择排序
- 数据结构与算法之基础排序(冒泡/插入/选择)<十>
- ::多层结构连接方式选择的分析::
- [翻译]C#数据结构与算法 – 第五章栈与队列(Part 2)
- MySQL表结构优化、数据类型选择方法
- 流程控制语句——if选择结构语句
- Matlab的选择结构
- Javascript权威指南——第二章词法结构,第三章类型、值和变量,第四章表达式和运算符,第五章语句
- Python基础05 三种基本结构&选择结构
- Java 选择结构
- JAVA之旅(三)——数组,堆栈内存结构,静态初始化,遍历,最值,选择/冒泡排序,二维数组,面向对象思想
- JavaScript的选择结构
- matlab从入门到精通(三)选择结构与循环结构