第5次课 阶段复习与练习(一)

知识复习

逻辑运算符

if-else多分支语句

switch语句

switch语法格式和注意事项 

switch语句的执行流程 

break关键字的作用 

课堂学习

条件运算符?:

唯一的三目运算符

if语句

switch语句 

不同选择结构的特点 

  1. 语句适合判断条件比较复杂,但是分支比较少的情况。
  2. switch语句适合判断条件简单,但是分支比较多的情况。
  3. switch语句只能针对某个表达式的值做出判断,不能直接判断某个范围。

课堂训练 

虫子吃苹果

//虫子吃苹果
#include<bits/stdc++.h>//万能头文件
using namespace std;
int main(){
	int n,x,y,m;
//	n代表苹果总数量,
//	x每小时吃苹果的速度,y总时间,
//	m是被虫子吃掉的苹果数量
	cin>>n>>x>>y;
	if(y%x==0) m=y/x;//是否可以整除
	else{
		m=y/x+1;//不能整除,就要+1
	}
	if(m>=n){//如果虫子在y小时内可以吃掉的数量大于等于总量,输出0;
		cout<<0;
	}	
	else cout<<n-m;
		return 0;
}

//虫子吃苹果
#include<bits/stdc++.h>//万能头文件
using namespace std;
int main(){
	int n,x,y,m;
//	n代表苹果总数量,
//	x每小时吃苹果的速度,y总时间,
//	m是被虫子吃掉的苹果数量
	cin>>n>>x>>y;
	m=y%x==0?y/x:y/x+1;
//	cout<<((n-m)>=0?n-m:0);//绝对不允许在输出语句使用赋值语句,三目运算符是可以的
	cout<<(n>=m?n-m:0);
		return 0;
}

3283 纸的张数

描述

大白老师很爱学习,每天都要看几页编程书,此书的第1页和第2页在同一张纸上,第3页和第4页在同一张纸上,第5页和第6页在同一张纸上,依次类推。这天大白老师从书的第x页看到了第y页,请问这几页书共有几张纸。

输入描述

一行,两个正整数x和y(1≤x,y≤100000),分别表示开始页码和结束页码,数与数之间以空格隔开

输出描述

一行,一个整数,表示纸张数量

样例输入 1 

1 4

样例输出 1 

2

样例输入 2 

2 5

样例输出 2 

3

提示

样例说明1:从第1页到第4页,第1页和第2页是一张纸,第3页和第4页是一张纸,所以一共是2张纸,输出2。
样例说明2:从第2页到第5页,第2页是一张纸,第3页和第4页是一张纸,第5页是一张纸,所以一共是3张纸,输出3。

#include<iostream>
using namespace std;
int main(){	
	int x,y;
	cin>>x>>y;
	int cnt=0;
	if(x%2==1&&y%2==0) cnt=(y-x+1)/2;
	else cnt=(y-x+1)/2+1;
	cout<<cnt;		
	return 0;
} 

3060 三角形的人工湖

描述

童程学院想要在校区内新建一个三角形的人工湖,一是为了养鱼美观,二是可以循环水资源。为了使人工湖更加美观,小童提议:将人工湖建成等腰三角形(三条边中任意两条边相等的三角形)。
请编写程序,输入三个正整数,判断这三种长度的边能否构成一个等腰三角形。

输入描述

三个正整数a、b、c,使用空格隔开,表示三条边。(1≤a,b,c≤1000)

输出描述

一行字符串,"YES"表示能构成等腰三角形,"NO"表示不能构成等腰三角形。

样例输入 1 

10 12 15

样例输出 1 

NO

样例输入 2 

8 8 6

样例输出 2 

YES

样例输入 3 

9 9 9

样例输出 3 

YES

提示

判断是否能够成等腰三角形,首先要判断是否能构成三角形。

#include <iostream>
using namespace std;
int main(){
	//1、接收输入的三个正整数
	int a,b,c;
	cin>>a>>b>>c;
	//2、判断是否为三角形
	if(a+b>c&&a+c>b&&b+c>a){
		//3、判断是否为等腰三角形
		if(a==b||a==c||b==c) cout<<"YES";
		else cout<<"NO";	
	}	
	else cout<<"NO";
	return 0;
}

3057 花果山会员

描述

孙悟空在西天取经之后,创办了一个公司:“花果山生态旅游公司”。公司的顾客分为白金会员,金卡会员,银卡会员,普通客户。
为了促进顾客来花果山观光消费,公司推出了优惠活动:
1)如果顾客为白金会员,本次消费立减100元
2)如果顾客为金卡会员,本次消费立减80元
3)如果顾客为银卡会员,本次消费立减70元
4)如果顾客为普通客户,本次消费立减30元
孙悟空希望能够通过程序根据顾客的身份和来花果山旅游的花费,给出应该支付的金额。

输入描述

两行。
第一行一个字符,'P’表示白金会员、'G’表示金卡会员、'S’表示银卡会员。其他字符均表示普通用户。
第二行一个整数,表示顾客来花果山观光的花费。(最低消费300元,上限10000)。

输出描述

一个整数,表示顾客最终应该支付的金额。

样例输入 1 

G
580

样例输出 1 

500
#include <iostream>
using namespace std;

int main(){
	//1、接收客户身份
	char id;
	cin>>id;
	//2、接收本次花果山旅游的花费
	int x;
	cin>>x;
	///3、根据客户身份,计算本次旅游花费
	switch(id){
		case 'P': x-=100;break;
		case 'G': x-=80;break;
		case 'S': x-=70;break;
		default: x-=30;
	}
	//4、输出本次旅行的花费
	cout<<x;
	
	
	return 0;
}

3061 客栈选择

描述

丽江河边有 6 家很有特色的客栈,客栈按照其位置顺序从1-6编号。每家客栈都按照不同的色调进行装饰,且每家客栈都设有一家咖啡店,每家咖啡店均有各自的最低消费。大白老师准备从6家客栈中选择一家喝咖啡。每家客栈的最低消费和装修色调如下表:
 

微信截图_20230331172231.png


输入大白老师的最低消费预算,他喜欢的装修色调,输出选定的客栈编号。(提示:优先根据最低消费预算做选择)

输入描述

两行,
第一行一个正整数m,代表最低消费钱数,50≤m≤1000;
第二行一个字符c,代表客栈装修色调(蓝色:‘b’;黄色:‘y’)。

输出描述

一个正整数,代表选定的客栈编号。

样例输入 1 

300
b

样例输出 1 

1
#include <iostream>
using namespace std;
int main(){
	//1、接收用户输入的预算和色调
	int m;
	char c;
	cin >> m >> c;
	//2、创建整型变量保存客栈编号
	int x;
	//3、根据预算选择客栈
	if(m>=200){
		//4、根据色调进一步选择
		if(c=='b') x=1;
		else x=2;
	}
	else if(m>=100){
		if(c=='b') x=4;
		else x=3;
	}else{
		if(c=='b') x=5;
		else x=6;	
	}
	//5、输出最终选择的客栈编号
	cout << x << endl;
	return 0;
}

课后作业 

3064 快递费用 

描述

快递行业的高速发展,人们邮寄物品变得方便快捷。某快递点提供华东地区、华南地区、华北地区的寄件服务,其中华东地区编号为1、华南地区编号为2、华北地区编号为3。该快递点寄件的价目表具体如下所示:
 

微信截图_20230331173202.png


编写一个快递计费程序,输入快递重量和地区编号,输出寄快递所需的费用。

输入描述

两个正整数,第一个正整数w,表示快递重量(1≤w≤10000);
第二个正整数id,表示地区编号 (1≤id≤3),数字之间使用空格分隔。

输出描述

一个正整数,表示寄快递的费用。

样例输入 1 

1 3

样例输出 1 

14

样例输入 2 

10 2

样例输出 2 

28

提示

首重:最低计费重量,例如:首重为2kg,≤2kg按照2kg的标准收费。
续重:在最低计费重量后增加的重量,例如:>2kg的部分按照3元/kg收费。

#include <iostream>
using namespace std;
int main(){
	//1、输入重量和地区编号
	int w,id;
	cin>>w>>id;
	//2、创建变量保存快递费用
	int m=0;
	//3、根据快递重量和地区编号计算快递费用
	switch(id){
	case 1:
		if(w<=2) m=13;
		else m=13+3*(w-2);
		break;
	case 2:
		if(w<=2) m=12;
		else m=12+2*(w-2);
		break;
	case 3:
		if(w<=2) m=14;
		else m=14+4*(w-2);
		break;
	}
	//4、输出快递费用
	cout<<m;
	
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值