2051:【例3.1】偶数
题目描述
解题思路
这是一个简单的条件判断问题。要确定一个数是否是偶数,可以检查该数除以2的余数是否为0。如果余数为0,说明该数是偶数;否则,不是偶数,不输出任何内容。
代码实现
#include <iostream>
using namespace std;
int main() {
int a;
cin >> a; // 从输入读取一个正整数a
// 判断是否为偶数
if (a % 2 == 0) {
cout << "yes"; // 如果a是偶数,输出yes
}
return 0;
}
代码解析
- 使用
cin
读取输入的正整数 (a)。 - 使用条件语句
if (a % 2 == 0)
检查 (a) 是否为偶数。这里%
是取模运算符,用于计算两个数相除的余数。 - 如果条件满足(即 (a) 是偶数),则使用
cout
输出 “yes”。 - 程序中没有对非偶数情况的输出,符合题目要求。
这段代码通过简单的模运算实现了偶数判断的功能,只在 (a) 为偶数时输出 “yes”,其他情况不输出任何内容。
2052:【例3.2】范围判断
题目描述
解题思路
这是一个基础的条件判断问题。要检查一个整数是否满足特定条件(在一个数值范围内),可以使用逻辑操作符来构造条件表达式。在本例中,我们需要确认整数既大于1又小于100。
代码实现
#include <iostream>
using namespace std;
int main() {
int num;
cin >> num; // 从输入读取一个整数
// 判断该整数是否在指定范围内
if (num > 1 && num < 100) {
cout << "yes"; // 如果在范围内,输出yes
}
return 0;
}
代码解析
- 使用
cin
读取输入的整数num
。 - 使用条件语句
if (num > 1 && num < 100)
检查num
是否在1到100的开区间内。这里使用的是逻辑与操作符&&
,它确保两个条件同时满足。 - 如果条件满足(即
num
在1和100之间),则使用cout
输出 “yes”。 - 没有为不满足条件的情况提供输出,符合题目要求。
这段代码准确实现了题目要求的功能,能够判断整数是否处于特定的数值范围内,并在满足条件时输出相应的结果。
2053:【例3.3】三个数
题目描述
解题思路
对于这个问题,我们需要对三个整数进行比较并排序。可以使用条件语句来比较这些数并决定它们的输出顺序。有多种方式来实现这个排序,如使用 if
语句组合或其他排序方法。这里我们将使用简单的条件判断方法来确定它们的顺序,并直接输出。
代码实现
#include <iostream>
using namespace std;
int main() {
int a, b, c;
cin >> a >> b >> c; // 输入三个整数
// 声明三个变量用于存放排序后的结果
int first, second, third;
// 判断并排序
if (a >= b && a >= c) {
first = a;
if (b >= c) {
second = b;
third = c;
} else {
second = c;
third = b;
}
} else if (b >= a && b >= c) {
first = b;
if (a >= c) {
second = a;
third = c;
} else {
second = c;
third = a;
}
} else {
first = c;
if (a >= b) {
second = a;
third = b;
} else {
second = b;
third = a;
}
}
// 输出结果
cout << first << " " << second << " " << third << endl;
return 0;
}
代码解析
- 使用
cin
读取三个整数a
,b
,c
。 - 使用一系列的
if-else
语句来比较这三个数并决定它们的顺序。 - 通过比较确定每个位置(
first
,second
,third
)应该放哪个数。 - 最终,输出排序后的结果,确保是从大到小的顺序。
这种方法直接使用条件语句对三个数进行全面比较,并根据比较结果直接输出,是一种简洁直接的解决方案。这样的方法虽然在更大的数据集上效率不高,但对于只有三个数的情况是足够有效的。
2054:【例3.4】适合晨练
题目描述
解题思路
这是一个基本的条件判断问题,只需要检查输入的温度是否在给定的范围内。具体步骤如下:
- 读取输入的温度值。
- 使用条件语句检查温度是否在25到30度之间。
- 如果在该范围内,输出 “ok!”,否则输出 “no!”。
代码实现
#include <iostream>
using namespace std;
int main() {
int t; // 温度变量
cin >> t; // 读取温度值
// 判断温度是否适合晨练
if (t >= 25 && t <= 30) {
cout << "ok!"; // 如果温度在25到30度之间,输出ok!
} else {
cout << "no!"; // 否则,输出no!
}
return 0;
}
代码解析
- 使用
cin
读取一个整数作为温度 ( t )。 - 通过
if
条件语句判断 ( t ) 是否在 25 到 30 度之间,包括边界值。 - 使用
cout
输出相应的结果,如果温度在指定范围内输出 “ok!”,否则输出 “no!”。
这段代码直接且有效地解决了判断温度是否适合晨练的问题,通过简单的条件判断输出了正确的结果。
2055:【例3.5】收费
题目描述
解题思路
根据行李重量确定适用的收费标准,并计算总费用。具体步骤如下:
- 读取输入的行李重量。
- 根据行李重量判断适用哪个收费标准。
- 计算总费用并输出,保留两位小数。
代码实现
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
double weight; // 行李重量
cin >> weight; // 读取行李重量
double rate; // 收费标准
if (weight <= 20) {
rate = 1.68; // 重量小于等于20公斤的收费标准
} else {
rate = 1.98; // 重量大于20公斤的收费标准
}
double fee = weight * rate; // 计算总费用
// 输出费用,保留两位小数
cout << fixed << setprecision(2) << fee << endl;
return 0;
}
代码解析
- 使用
cin
读取行李重量,该重量可能包含小数。 - 使用
if
语句根据行李重量决定适用的收费标准。 - 计算总费用,然后使用
cout
和setprecision(2)
输出费用,确保输出结果保留两位小数。
这段代码能够根据不同的重量区间适应性地调整收费标准,并准确地输出应收费用,保留两位小数。
2056:【例3.7】最大的数
题目描述
解题思路
这个问题可以通过简单的比较操作解决。我们可以逐一比较这三个数,保持一个变量来存储当前遇到的最大值。最后输出这个最大值。
代码实现
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
double num1, num2, num3;
cin >> num1 >> num2 >> num3; // 读取三个数
double maxNum = num1; // 初始化最大值为第一个数
// 比较第二个数和当前最大值
if (num2 > maxNum) {
maxNum = num2;
}
// 比较第三个数和当前最大值
if (num3 > maxNum) {
maxNum = num3;
}
// 输出最大值,保留小数点后两位
cout << fixed << setprecision(2) << maxNum << endl;
return 0;
}
代码解析
- 使用
cin
读取三个数。 - 通过两次比较操作更新最大值。先将
maxNum
初始化为第一个数,然后分别与第二个和第三个数比较,如果发现更大的数,则更新maxNum
。 - 最后使用
cout << fixed << setprecision(2)
输出最大数,确保输出格式为小数点后两位。
这种方法通过简单的比较找出最大值,并在每一步中更新最大值的记录,最终输出这个最大值。这是一种效率高且直观的方法,特别适合处理小规模数据的最大值问题。
1039:判断数正负
题目描述
解题思路
这个问题涉及基本的条件判断。你需要检查一个整数的正负状态,并根据该状态输出相应的字符串。
代码实现
#include <iostream>
using namespace std;
int main() {
int N; // 定义一个整数 N
cin >> N; // 从输入读取整数 N
// 根据 N 的值判断并输出相应的字符串
if (N > 0) {
cout << "positive"; // 如果 N 大于 0,输出 "positive"
} else if (N == 0) {
cout << "zero"; // 如果 N 等于 0,输出 "zero"
} else {
cout << "negative"; // 如果 N 小于 0,输出 "negative"
}
return 0;
}
代码解析
- 使用
cin
读取整数 ( N )。 - 使用
if
、else if
和else
语句进行条件判断。首先判断 ( N ) 是否大于 0,如果是,则输出 “positive”。如果不是,则进一步判断 ( N ) 是否等于 0,如果是,则输出 “zero”。如果 ( N ) 既不大于 0 也不等于 0(即小于 0),则输出 “negative”。 - 这样的逻辑结构确保了程序能够准确地识别和响应不同的情况,并输出正确的结果。
这段代码高效地处理了所有可能的情况,可以准确判断并输出一个整数的正负状态。
1040:输出绝对值
题目描述
解题思路
这个任务主要涉及到两个操作:计算一个浮点数的绝对值和格式化输出这个绝对值到小数点后两位。
- 计算绝对值:使用 C++ 的
fabs
函数从<cmath>
库来计算浮点数的绝对值。 - 格式化输出:使用
fixed
和setprecision
从<iomanip>
库来格式化输出,保留两位小数。
代码实现
#include <iostream>
#include <iomanip> // 用于设置输出格式
#include <cmath> // 包含数学函数库
using namespace std;
int main() {
double num; // 定义浮点数变量
cin >> num; // 输入一个浮点数
// 输出这个浮点数的绝对值,保留到小数点后两位
cout << fixed << setprecision(2) << fabs(num) << endl;
return 0;
}
代码解析
cin >> num;
从标准输入读取一个浮点数。fabs(num)
计算输入浮点数的绝对值。fabs
是<cmath>
库中的函数,用于计算浮点数的绝对值。- 使用
cout << fixed << setprecision(2) << ...
来设置输出格式为固定的小数点表示(fixed
),并且指定小数点后保留两位(setprecision(2)
)。 - 输出格式化后的绝对值。
这段代码通过标准的库函数和格式设置,精确地处理和输出了一个浮点数的绝对值,并确保输出格式符合要求,保留小数点后两位。
1041:奇偶数判断
题目描述
解题思路
这是一个基本的条件判断问题,涉及到整数的奇偶性检查。奇偶性可以通过检查一个数除以2的余数来确定:
- 如果余数为0,则该数为偶数。
- 如果余数不为0,则该数为奇数。
代码实现
#include <iostream>
using namespace std;
int main() {
int n; // 定义整数变量
cin >> n; // 从输入读取一个整数
// 使用条件语句判断奇偶性并输出对应结果
if (n % 2 == 0) {
cout << "even"; // 如果n是偶数,输出even
} else {
cout << "odd"; // 如果n是奇数,输出odd
}
return 0;
}
代码解析
- 使用
cin
从标准输入读取一个整数n
。 - 使用
if
条件语句检查n % 2
的结果。%
是模运算符,用于计算除法的余数。 - 如果
n % 2
等于 0,说明n
是偶数,输出 “even”。 - 如果
n % 2
不等于 0,说明n
是奇数,输出 “odd”。
这段代码能够有效地判断一个整数的奇偶性,并输出相应的结果。由于题目确保输入为正整数,不需要考虑负数或零的情况,这使得代码更为简洁。
1042:奇偶ASCII值判断
题目描述
解题思路
对于输入的字符,我们可以直接获取其ASCII值,并通过简单的模运算(取余)来判断其奇偶性:
- 使用
%
运算符检查ASCII值除以2的余数。 - 如果余数为1,那么这个ASCII值是奇数;如果余数为0,则是偶数。
代码实现
#include <iostream>
using namespace std;
int main() {
char ch; // 定义字符变量
cin >> ch; // 从输入读取一个字符
// 获取字符的ASCII值并判断奇偶性
if (int(ch) % 2 == 1) {
cout << "YES"; // 如果ASCII值是奇数,输出YES
} else {
cout << "NO"; // 如果ASCII值是偶数,输出NO
}
return 0;
}
代码解析
- 使用
cin >> ch;
读取一个字符。 - 将字符
ch
转换为其整数ASCII值,这可以通过简单地在条件表达式中使用int(ch)
实现。 - 使用条件语句
if (int(ch) % 2 == 1)
检查转换后的ASCII值除以2的余数。 - 根据余数输出 “YES” 或 “NO”。
这段代码通过判断字符的ASCII值的奇偶性来输出相应的结果,实现简单且直接。由于ASCII值的范围是确定的(0-127),这种方法在所有情况下都能有效工作。
1043:整数大小比较
题目描述
解题思路
这个问题涉及基础的条件判断。根据两个整数 ( x ) 和 ( y ) 的比较结果,输出相应的比较符号。需要使用 if-else
结构来判断并输出相应的结果。
代码实现
#include <iostream>
using namespace std;
int main() {
unsigned int x; // 定义无符号整数 x
int y; // 定义有符号整数 y
cin >> x >> y; // 从输入读取两个整数
// 比较 x 和 y 的大小并输出相应的符号
if (x > y) {
cout << '>'; // 如果 x 大于 y,输出 >
} else if (x == y) {
cout << '='; // 如果 x 等于 y,输出 =
} else {
cout << '<'; // 如果 x 小于 y,输出 <
}
return 0;
}
代码解析
- 使用
cin >> x >> y;
读取两个整数。 - 使用条件语句
if-else
判断这两个数的大小关系。- 如果 ( x ) 大于 ( y ),输出
>
. - 如果 ( x ) 等于 ( y ),输出
=
. - 如果 ( x ) 小于 ( y ),输出
<
.
- 如果 ( x ) 大于 ( y ),输出
这段代码通过基础的条件判断处理了整数的比较问题,并输出了正确的比较符号,符合题目的要求。对于给定的数据范围,这种简单的比较方法是有效的。
1044:判断是否为两位数
题目描述
解题思路
这是一个简单的条件判断问题。要判断一个数是否是两位数,只需要检查它是否在10到99之间,包含这两个边界值。
代码实现
#include <iostream>
using namespace std;
int main() {
int number; // 定义一个整数变量
cin >> number; // 读取输入的整数
// 判断该数是否为两位数
if (number >= 10 && number <= 99) {
cout << 1; // 如果是两位数,输出1
} else {
cout << 0; // 如果不是两位数,输出0
}
return 0;
}
代码解析
- 使用
cin
读取一个整数。 - 使用
if-else
条件判断来检查该整数是否在10和99之间(包含这两个数)。 - 输出1表示它是两位数,输出0表示它不是两位数。
这段代码通过直接的条件判断来判断一个整数是否为两位数,并根据结果输出相应的值。代码简洁有效,直接满足了题目要求。
1045:收集瓶盖赢大奖
题目描述
解题思路
这个问题要求检查两个条件之一是否满足:
- “幸运”瓶盖的数量是否大于等于10。
- “鼓励”瓶盖的数量是否大于等于20。
如果任一条件满足,输出1,表示可以兑换大奖;如果都不满足,输出0。
代码实现
#include <iostream>
using namespace std;
int main() {
int lucky, encouragement; // 定义两个变量存储“幸运”和“鼓励”的瓶盖数
cin >> lucky >> encouragement; // 从输入读取这两个数
// 判断是否满足兑换条件
if (lucky >= 10 || encouragement >= 20) {
cout << 1; // 如果满足任一条件,输出1
} else {
cout << 0; // 如果两个条件都不满足,输出0
}
return 0;
}
代码解析
- 使用
cin
读取两个整数:印有“幸运”和“鼓励”的瓶盖数。 - 使用条件语句
if
检查是否至少满足一个兑换条件(“幸运”瓶盖数大于等于10或“鼓励”瓶盖数大于等于20)。 - 根据条件的满足情况输出相应的结果(1或0)。
此代码简洁有效地处理了判断条件,并能正确地输出是否能够兑换大奖的结果。
1046:判断一个数能否同时被3和5整除
题目描述
解题思路
要判断一个数是否同时被3和5整除,可以直接检查该数是否能被15整除,因为15是3和5的最小公倍数。使用模运算(取余)即可实现这一判断。
代码实现
#include <iostream>
using namespace std;
int main() {
int n; // 定义整数变量 n
cin >> n; // 读取输入的整数 n
// 判断 n 是否能同时被3和5整除,即 n 是否能被15整除
if (n % 15 == 0) {
cout << "YES"; // 如果 n 能被15整除,输出YES
} else {
cout << "NO"; // 如果 n 不能被15整除,输出NO
}
return 0;
}
代码解析
- 使用
cin >> n;
从标准输入读取一个整数 ( n )。 - 使用
if (n % 15 == 0)
判断 ( n ) 是否能被15整除。这里%
是模运算符,用于计算除法的余数。 - 根据
n % 15
的结果输出 “YES” 或 “NO”。
这段代码通过一个简单的条件判断来检查一个数是否能同时被3和5整除。该解决方案是有效且效率高的,因为它直接利用模运算来判断整除性。
1047:判断能否被3,5,7整除
题目描述
解题思路
这个问题可以通过对给定数进行模运算来判断它是否能被3、5、7整除。我们需要检查各种组合,从所有三个数都能整除的情况到只能被一个数整除的情况,最后是不能被任何一个数整除的情况。
代码实现
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n; // 读取整数
bool div3 = (n % 3 == 0);
bool div5 = (n % 5 == 0);
bool div7 = (n % 7 == 0);
if (div3 && div5 && div7) {
cout << "3 5 7";
} else if (div3 && div5) {
cout << "3 5";
} else if (div3 && div7) {
cout << "3 7";
} else if (div5 && div7) {
cout << "5 7";
} else if (div3) {
cout << "3";
} else if (div5) {
cout << "5";
} else if (div7) {
cout << "7";
} else {
cout << 'n';
}
return 0;
}
代码解析
- 使用
cin
读取一个整数n
。 - 创建布尔变量
div3
,div5
,div7
来检查n
是否可以被3、5、7整除。 - 使用一系列的
if-else
语句来确定n
被哪些数整除的情况,并按要求输出。 - 按题目要求,首先检查
n
是否同时被3、5、7整除,然后是它能被两个数整除的情况,接着是只能被一个数整除的情况,最后如果都不满足,则输出 ‘n’。
这种方法有效地分类并判断了所有的可能情况,并且直接输出了对应的结果。这种分类方法清晰直接,易于理解和实现。
1048:有一门课不及格的学生
题目描述
解题思路
这个问题可以通过检查每门课的成绩是否低于60分来解决。如果只有一门成绩低于60分,则输出1,否则输出0。这需要使用基本的逻辑运算符来实现。
代码实现
#include <iostream>
using namespace std;
int main() {
int chinese, math; // 定义两个变量存储语文和数学成绩
cin >> chinese >> math; // 从输入读取这两门课的成绩
// 判断是否恰好有一门课不及格
bool failChinese = chinese < 60; // 语文是否不及格
bool failMath = math < 60; // 数学是否不及格
if (failChinese + failMath == 1) { // 如果恰好一门不及格
cout << 1; // 输出1
} else {
cout << 0; // 否则输出0
}
return 0;
}
代码解析
- 使用
cin >> chinese >> math;
读取语文和数学的成绩。 - 创建布尔变量
failChinese
和failMath
来判断语文和数学成绩是否不及格。 - 通过
failChinese + failMath == 1
判断恰好有一门课不及格。这里利用了布尔值在数学运算中转换为0(假)或1(真)的特性。 - 根据条件的真假输出相应的结果。
这种方法通过逻辑判断和简单的布尔运算直接解决了问题,代码简洁且易于理解。