本文主要是介绍东方 - 分支(2) - 多分支,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
- 解析部分:
- 多分支
- 1304. 冷饮的价格(2)
- 问题描述
- 解题思路
- 代码实现
- 代码解析
- 1044. 找出最经济型的包装箱型号
- 问题描述
- 解题思路
- 代码实现
- 代码解析
- 1039. 求三个数的最大数
- 问题描述
- 解题思路
- 代码实现
- 代码解析
- 1035. 判断成绩等级
- 问题描述
- 解题思路
- 代码实现
- 代码解析
- 1300. 小明暑假的零花钱
- 问题描述
- 解题思路
- 代码实现
- 代码解析
- 1322. 求数的量级?
- 问题描述
- 解题思路
- 代码实现
- 代码解析
- 1049. 汉译英
- 问题描述
- 解题思路
- 代码实现
- 代码解析
- 1391. 公交卡充值问题
- 问题描述
- 解题思路
- 代码实现
- 代码解析
- 1668. 运动会成绩统计
- 问题描述
- 解题思路
- 代码实现
- 代码解析
- 1669. 上什么课
- 问题描述
- 解题思路
- 代码实现
- 代码解析
- 1670. 象棋大赛
- 问题描述
- 解题思路
- 代码实现
- 代码解析
- 1667. 最大数和最小数的差
- 问题描述
- 解题思路
- 代码实现
- 代码解析
- 1305. 求四个数的最大数
- 问题描述
- 解题思路
- 代码实现
- 代码解析
- 1310. 至少要买几瓶止咳糖浆?
- 问题描述
- 解题思路
- 代码实现
- 代码解析
- 1464. 晶晶的补习班
- 问题描述
- 解题思路
- 代码实现
- 代码解析
解析部分:
多分支
1304. 冷饮的价格(2)
问题描述
根据小明购买冰棍的数量,计算应付的价格,其中价格根据购买数量有不同的单价。
解题思路
计算应付价格的步骤如下:
- 根据购买的冰棍数量,确定对应的单价。
- 使用确定的单价乘以购买数量,得到总价格。
- 输出总价格,保留1位小数。
代码实现
#include <iostream>
#include <iomanip>
using namespace std;int main() {int n; // 定义变量存储购买的冰棍数量cin >> n; // 从标准输入读取冰棍数量double price; // 定义变量存储总价格// 根据购买数量确定单价if (n >= 30) {price = n * 1.0;} else if (n >= 20) {price = n * 1.2;} else if (n >= 10) {price = n * 1.5;} else {price = n * 1.8;}// 输出应付金额,保留一位小数cout << fixed << setprecision(1) << price << endl;return 0; // 程序结束
}
代码解析
- int n; 定义一个整型变量
n
来存储用户输入的购买冰棍的数量。 - cin >> n; 使用
cin
从标准输入读取购买数量。 - double price; 定义一个双精度浮点数变量
price
来计算应付的总价格。 - 使用
if-else
结构根据购买的冰棍数量选择合适的单价进行计算。 - cout << fixed << setprecision(1) << price << endl; 使用
cout
输出总价格,并通过fixed
和setprecision(1)
确保结果保留一位小数。
通过这种方法,可以根据小明购买冰棍的数量准确计算出应付的总价格,并按要求输出。
1044. 找出最经济型的包装箱型号
问题描述
根据货物的重量选择最合适的包装箱型号,以确保材料使用最经济。
解题思路
通过判断货物的重量落在哪个重量区间,选择相应的包装箱型号:
- 小于10公斤使用A型。
- 大于等于10公斤且小于20公斤使用B型。
- 大于等于20公斤且小于40公斤使用C型。
- 大于等于40公斤且小于50公斤使用D型。
- 大于等于50公斤且小于80公斤使用E型。
代码实现
#include <iostream>
using namespace std;int main() {int weight; // 定义变量存储货物的重量cin >> weight; // 从标准输入读取货物重量char type; // 定义变量存储包装箱型号// 判断货物重量选择包装箱型号if (weight < 10) {type = 'A';} else if (weight < 20) {type = 'B';} else if (weight < 40) {type = 'C';} else if (weight < 50) {type = 'D';} else if (weight < 80) {type = 'E';}// 输出最经济型的包装箱型号cout << type << endl;return 0; // 程序结束
}
代码解析
- int weight; 定义一个整型变量
weight
来存储用户输入的货物重量。 - cin >> weight; 使用
cin
从标准输入读取货物重量。 - char type; 定义一个字符变量
type
来存储选择的包装箱型号。 - 使用一系列
if-else
语句根据货物的重量判断并选择最合适的包装箱型号。 - cout << type << endl; 使用
cout
输出选择的包装箱型号,并确保输出后有一个回车符号。
这样,可以根据货物的重量准确地选择最经济型的包装箱型号,并按要求输出。
1039. 求三个数的最大数
问题描述
给定三个不相等的整数,需要找出并输出这三个数中的最大数。
解题思路
要找出三个数中的最大数,我们可以通过比较这三个数来实现:
- 首先比较前两个数,找出较大的那个。
- 然后将这个较大的数与第三个数比较,找出最大的那个数。
- 输出这个最大的数。
代码实现
#include <iostream>
using namespace std;int main() {int a, b, c; // 定义变量存储三个整数cin >> a >> b >> c; // 从标准输入读取这三个整数int maxNumber; // 定义变量存储最大的数// 通过比较找出最大的数maxNumber = a > b ? a : b;maxNumber = maxNumber > c ? maxNumber : c;// 输出最大的数cout << maxNumber << endl;return 0; // 程序结束
}
代码解析
- int a, b, c; 定义三个整型变量
a
、b
、c
来存储用户输入的三个整数。 - cin >> a >> b >> c; 使用
cin
从标准输入读取这三个整数。 - int maxNumber; 定义一个整型变量
maxNumber
来存储最大的数。 - 使用条件运算符(
? :
)先比较a
和b
得到较大的数,然后将这个较大的数与c
比较,最终找出最大的数。 - cout << maxNumber << endl; 使用
cout
输出最大的数,并在输出后添加一个回车符号。
这种方法可以准确地找出三个数中的最大数,并按要求输出。
1035. 判断成绩等级
问题描述
根据输入的学生成绩,将其分为三个等级:86分以上(包括86分)为VERY GOOD,60到85分(包括60和85分)为GOOD,小于60分为BAD。
解题思路
根据成绩的不同范围,使用条件判断语句输出相应的成绩等级:
- 成绩大于等于86分输出VERY GOOD。
- 成绩在60到85分之间(包含边界值)输出GOOD。
- 成绩小于60分输出BAD。
代码实现
#include <iostream>
using namespace std;int main() {int score; // 定义变量存储学生成绩cin >> score; // 从标准输入读取成绩// 判断成绩等级并输出结果if (score >= 86) {cout << "VERY GOOD" << endl;} else if (score >= 60) {cout << "GOOD" << endl;} else {cout << "BAD" << endl;}return 0; // 程序结束
}
代码解析
- int score; 定义一个整型变量
score
来存储用户输入的学生成绩。 - cin >> score; 使用
cin
从标准输入读取学生成绩。 - 使用
if-else
语句根据成绩的具体值判断并输出相应的等级。- 如果成绩大于等于86分,则输出VERY GOOD。
- 如果成绩在60到85分之间,则输出GOOD。
- 如果成绩小于60分,则输出BAD。
通过这种方法,可以准确地根据学生成绩输出其等级,并满足题目的要求。
1300. 小明暑假的零花钱
问题描述
基于小明的考试成绩来计算他暑假的零花钱,成绩与零花钱之间有明确的对应关系。
解题思路
根据小明的考试成绩,使用条件判断来计算他应得的零花钱金额。不同的成绩区间对应不同的计算规则。
代码实现
#include <iostream>
using namespace std;int main() {int score; // 定义变量存储小明的考试成绩cin >> score; // 从标准输入读取小明的考试成绩int pocketMoney; // 定义变量存储小明的零花钱金额// 根据考试成绩计算零花钱if (score >= 90) {pocketMoney = score * 3; // 90分以上,零花钱是成绩的3倍} else if (score >= 80) {pocketMoney = score * 2; // 80到89分,零花钱是成绩的2倍} else if (score >= 70) {pocketMoney = score; // 70到79分,零花钱等于成绩分数} else {pocketMoney = 50; // 69分以下,零花钱固定为50元}// 输出小明暑假的零花钱金额cout << pocketMoney << endl;return 0; // 程序结束
}
代码解析
- 使用
int score;
定义一个整型变量score
来存储小明的考试成绩。 - 使用
cin >> score;
从标准输入读取小明的考试成绩。 - 使用
int pocketMoney;
定义一个整型变量pocketMoney
来存储计算出的零花钱金额。 - 通过一系列的
if-else
条件判断结构,根据小明的考试成绩决定其零花钱的计算方式。 - 使用
cout << pocketMoney << endl;
输出计算出的小明暑假的零花钱金额。
通过这种方式,可以根据小明的考试成绩准确地计算出他在不同成绩区间下应得的零花钱金额,并按要求输出。
1322. 求数的量级?
问题描述
给定一个大整数n(10000 <= n <= 9999999999),需判断该数的量级并输出对应的量级拼音。
解题思路
量级判断依据整数(n)的长度(位数):
- 5位数为"万"(wan)。
- 6位数为"十万"(shi wan)。
- 7位数为"百万"(bai wan)。
- 8位数为"千万"(qian wan)。
- 9位数为"亿"(yi)。
- 10位数为"十亿"(shi yi)。
代码实现
#include <iostream>
#include <string>
using namespace std;int main() {long long n; // 使用long long类型以支持大整数cin >> n;int length = to_string(n).length(); // 将数字转换为字符串并获取长度switch (length) {case 5: cout << "wan"; break;case 6: cout << "shi wan"; break;case 7: cout << "bai wan"; break;case 8: cout << "qian wan"; break;case 9: cout << "yi"; break;case 10: cout << "shi yi"; break;}return 0;
}
代码解析
- 将输入的整数(n)转换为字符串,这样便于获取其长度。
- 根据字符串的长度,使用
switch
语句判断并输出对应的量级拼音。
这种方法能够有效地根据给定的整数大小判断并输出其量级。
1049. 汉译英
问题描述
给定一个整数(n),如果这个整数在1到9的范围内,需要输出与之对应的英文单词;如果不在这个范围内,输出out
。
解题思路
可以通过判断语句来实现,对于每一个在1到9之间的数字,输出相应的英文单词。
代码实现
#include <iostream>
using namespace std;int main() {int n; // 定义变量存储输入的整数cin >> n; // 从标准输入读取整数// 根据输入的整数输出对应的英文单词或outswitch (n) {case 1: cout << "one"; break;case 2: cout << "two"; break;case 3: cout << "three"; break;case 4: cout << "four"; break;case 5: cout << "five"; break;case 6: cout << "six"; break;case 7: cout << "seven"; break;case 8: cout << "eight"; break;case 9: cout << "nine"; break;default: cout << "out"; break;}return 0; // 程序结束
}
代码解析
- int n; 定义一个整型变量
n
来存储用户输入的整数。 - cin >> n; 使用
cin
从标准输入读取这个整数。 - 使用
switch
语句根据输入的整数n
选择输出对应的英文单词。如果n
在1到9之间,输出相应的英文单词;否则,输出out
。
这种方法可以准确地根据输入的整数在1到9之间输出对应的英文单词,或者输出out
以表示输入的整数不在这个范围内。
1391. 公交卡充值问题
问题描述
根据小明充值的金额,按照公交充值中心的优惠活动计算实际到账的金额。
解题思路
根据充值金额的不同区间,决定赠送的额度,最后将充值金额与赠送金额相加得到实际到账金额。
代码实现
#include <iostream>
using namespace std;int main() {int n; // 定义变量存储小明的充值金额cin >> n; // 从标准输入读取充值金额int gift = 0; // 定义变量存储赠送的金额if (n >= 500) {gift = 200; // 充值500元及以上,赠送200元} else if (n >= 300) {gift = 100; // 充值300元∼499元,赠送100元} else if (n >= 200) {gift = 50; // 充值200元∼299元,赠送50元} // 充值200元以下没有赠送活动,gift保持为0int total = n + gift; // 计算实际到账的金额cout << total << endl; // 输出实际到账的金额return 0; // 程序结束
}
代码解析
- int n; 定义一个整型变量
n
来存储用户输入的充值金额。 - cin >> n; 使用
cin
从标准输入读取充值金额。 - 根据充值金额的区间,使用
if-else
语句分支来确定赠送金额gift
。 - 计算实际到账金额
total
为充值金额n
加上赠送金额gift
。 - cout << total << endl; 输出实际到账金额。
这种方法能够根据充值金额准确计算并输出实际到账的金额。
1668. 运动会成绩统计
问题描述
根据运动会跳水比赛的成绩,判断选手获得的奖牌类别。
解题思路
选手的成绩需要与金牌、银牌和铜牌的分数线进行比较,以确定获得的奖项类别。
代码实现
#include <iostream>
using namespace std;int main() {double score; // 定义变量存储选手的分数cin >> score; // 从标准输入读取选手的分数// 根据分数判断获奖情况if (score >= 92.8) {cout << "jin" << endl; // 金牌} else if (score >= 85.6) {cout << "yin" << endl; // 银牌} else if (score >= 82.1) {cout << "tong" << endl; // 铜牌} else {cout << "sorry" << endl; // 未获奖}return 0; // 程序结束
}
代码解析
- double score; 定义一个双精度浮点数变量
score
来存储选手的成绩。 - cin >> score; 使用
cin
从标准输入读取选手的成绩。 - 使用一系列
if-else
语句根据选手的成绩与奖牌的分数线进行比较,并输出相应的奖项类别。 - 根据成绩输出
jin
、yin
、tong
或sorry
,分别表示金牌、银牌、铜牌和未获奖。
这样,程序能够根据选手的成绩准确判断并输出选手应获得的奖项类别。
1669. 上什么课
问题描述
根据输入的星期数,确定晶晶今天应该上的课程。
解题思路
根据提供的信息,可以使用switch
语句或if-else
语句来判断今天是星期几,并根据星期几输出晶晶应该上的课程。
代码实现
#include <iostream>
using namespace std;int main() {int day; // 定义变量存储星期数cin >> day; // 从标准输入读取星期数// 根据星期数判断应该上的课程switch(day) {case 1: cout << "swim" << endl; break; // 周一游泳case 3: cout << "program" << endl; break; // 周三编程case 5: cout << "read" << endl; break; // 周五阅读case 6: cout << "math" << endl; break; // 周六数学default: cout << "rest" << endl; break; // 其余时间没课}return 0; // 程序结束
}
代码解析
- int day; 定义一个整型变量
day
来存储今天是星期几。 - cin >> day; 使用
cin
从标准输入读取今天是星期几。 - 使用
switch
语句根据输入的星期数day
输出晶晶今天应该上的课程。case
分支分别对应周一到周日,根据不同的星期数输出不同的课程名称,没有对应课程的星期输出rest
表示休息。
这种方法可以准确地根据输入的星期数判断晶晶今天应该上的课程,并按要求输出。
1670. 象棋大赛
问题描述
根据选手的年龄,将其分配到相应的组别:青年组(15至30岁)、少年组(11至14岁)和儿童组(8至10岁)。
解题思路
通过判断选手的年龄所在的范围,可以确定选手的分组。
代码实现
#include <iostream>
using namespace std;int main() {int age; // 定义变量存储选手的年龄cin >> age; // 从标准输入读取选手的年龄// 根据年龄判断分组if (age >= 15 && age <= 30) {cout << "qingnianzu" << endl; // 青年组} else if (age >= 11 && age <= 14) {cout << "shaonianzu" << endl; // 少年组} else if (age >= 8 && age <= 10) {cout << "ertongzu" << endl; // 儿童组}return 0; // 程序结束
}
代码解析
- int age; 定义一个整型变量
age
来存储选手的年龄。 - cin >> age; 使用
cin
从标准输入读取选手的年龄。 - 通过
if-else
语句根据选手的年龄范围判断其所属的分组,并输出相应的组别名称。
这种方法可以根据选手的年龄准确地分配到相应的组别,并按要求输出组别名称。
1667. 最大数和最小数的差
问题描述
给定一个三位正整数,求出其个位、十位、百位数字中最大数和最小数的差值。
解题思路
- 将三位数分解为个位、十位、百位。
- 找出这三个数字中的最大值和最小值。
- 计算最大值和最小值的差。
代码实现
#include <iostream>
using namespace std;int main() {int n; // 存储输入的三位数cin >> n;int hundred = n / 100; // 百位int ten = (n / 10) % 10; // 十位int one = n % 10; // 个位// 找最大值和最小值int maxDigit = max(hundred, max(ten, one));int minDigit = min(hundred, min(ten, one));// 计算差值int difference = maxDigit - minDigit;cout << difference << endl; // 输出差值return 0; // 程序结束
}
代码解析
- 将输入的三位数
n
分解为个位、十位和百位。 - 使用
max
函数和min
函数找出三个数字中的最大值和最小值。 - 计算这两个值的差,即为所求的最大数和最小数的差值。
- 输出这个差值。
抱歉,让我们回到你指定的格式。
1305. 求四个数的最大数
问题描述
给定四个不相等的整数,需要找到并输出这些数中的最大值。
解题思路
- 读入数据:首先,我们需要从标准输入读入四个整数。
- 比较大小:然后,通过比较这四个数,找出其中的最大值。
- 输出结果:最后,输出这四个数中的最大值。
代码实现
#include <iostream>
using namespace std;int main() {int a, b, c, d; // 定义四个整型变量 a, b, c, d 来存储用户输入的四个数cin >> a >> b >> c >> d; // 通过标准输入读取这四个数int max = a; // 假设 a 是最大的数if (b > max) max = b; // 如果 b 大于当前的最大值,更新最大值为 bif (c > max) max = c; // 如果 c 大于当前的最大值,更新最大值为 cif (d > max) max = d; // 如果 d 大于当前的最大值,更新最大值为 dcout << max << endl; // 输出最大值return 0; // 程序正常结束
}
代码解析
- 定义四个整型变量
a
,b
,c
,d
来存储用户输入的四个整数。 - 使用
cin
从标准输入读取这四个整数。 - 通过一系列的比较操作,找到这四个数中的最大值,并将其存储在变量
max
中。 - 使用
cout
输出找到的最大值。
1310. 至少要买几瓶止咳糖浆?
问题描述
花花生病需要服用止咳糖浆,根据年龄和服用规格,计算至少需要购买的止咳糖浆瓶数。
解题思路
- 读入数据:首先,从标准输入读取花花的年龄。
- 计算每日所需糖浆量:根据花花的年龄判断每日所需的止咳糖浆量。
- 计算总所需糖浆量:花花痊愈需要5天,计算5天总共需要的糖浆量。
- 计算瓶数:每瓶糖浆120毫升,计算至少需要的瓶数。
- 输出结果:输出最少需要购买的止咳糖浆瓶数。
代码实现
#include <iostream>
using namespace std;int main() {int age; // 存储花花的年龄cin >> age; // 读取花花的年龄int dose; // 每次服用的剂量if (age > 10) {dose = 25;} else if (age >= 7) {dose = 15;} else if (age >= 3) {dose = 5;} else {// 年龄低于3岁的情况dose = 0;}int totalDose = dose * 3 * 5; // 计算5天总共需要的糖浆量int bottles = (totalDose + 119) / 120; // 计算所需的瓶数,向上取整cout << bottles << endl; // 输出最少需要的止咳糖浆瓶数return 0;
}
代码解析
- 根据花花的年龄确定每次服用的剂量。
- 计算5天内总共需要服用的糖浆量。
- 由于每瓶糖浆是120毫升,通过计算确定至少需要的止咳糖浆瓶数,并向上取整。
- 输出所需的止咳糖浆瓶数。
1464. 晶晶的补习班
问题描述
晶晶每天需要上补习班,她想知道下周每天平均要上多少小时的补习班,以及一周中最长和最短的补习班各需要上多少小时。
解题思路
- 读入数据:首先,需要从输入中读取7个整数,这7个整数代表晶晶下周每天需要上的补习班小时数。
- 计算平均小时数:将所有天的补习班小时数相加,然后除以7,得到平均每天需要上的补习班小时数。
- 确定最长和最短的补习班小时数:在读入小时数的过程中,同时记录下遇到的最大和最小的小时数。
- 输出结果:输出平均小时数(保留1位小数),最长的补习班小时数和最短的补习班小时数。
代码实现
#include <iostream>
#include <algorithm> // 引入算法库,使用min和max函数
using namespace std;int main() {int hours, totalHours = 0, maxHours = 0, minHours = INT_MAX;for (int i = 0; i < 7; i++) {cin >> hours;totalHours += hours;maxHours = max(maxHours, hours);minHours = min(minHours, hours);}cout << fixed; // 固定小数点输出格式cout.precision(1); // 设置小数点后一位精度cout << totalHours / 7.0 << " " << maxHours << " " << minHours;return 0;
}
代码解析
- 初始化
totalHours
为0,用于累加一周的总补习时间;maxHours
为0,表示一周中最长的补习班时间;minHours
为INT_MAX
,表示一周中最短的补习班时间。 - 通过循环读入7天的补习班小时数,同时更新
totalHours
、maxHours
和minHours
。 - 计算平均每天的补习班小时数,输出时保留一位小数。
- 最后,输出平均每天需要上补习班的小时数、一周中最长和最短的补习班小时数。
这篇关于东方 - 分支(2) - 多分支的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!