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】适合晨练

题目描述
解题思路

这是一个基本的条件判断问题,只需要检查输入的温度是否在给定的范围内。具体步骤如下:

  1. 读取输入的温度值。
  2. 使用条件语句检查温度是否在25到30度之间。
  3. 如果在该范围内,输出 “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】收费

题目描述
解题思路

根据行李重量确定适用的收费标准,并计算总费用。具体步骤如下:

  1. 读取输入的行李重量。
  2. 根据行李重量判断适用哪个收费标准。
  3. 计算总费用并输出,保留两位小数。
代码实现
#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 语句根据行李重量决定适用的收费标准。
  • 计算总费用,然后使用 coutsetprecision(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 )。
  • 使用 ifelse ifelse 语句进行条件判断。首先判断 ( N ) 是否大于 0,如果是,则输出 “positive”。如果不是,则进一步判断 ( N ) 是否等于 0,如果是,则输出 “zero”。如果 ( N ) 既不大于 0 也不等于 0(即小于 0),则输出 “negative”。
  • 这样的逻辑结构确保了程序能够准确地识别和响应不同的情况,并输出正确的结果。

这段代码高效地处理了所有可能的情况,可以准确判断并输出一个整数的正负状态。

1040:输出绝对值

题目描述
解题思路

这个任务主要涉及到两个操作:计算一个浮点数的绝对值和格式化输出这个绝对值到小数点后两位。

  1. 计算绝对值:使用 C++ 的 fabs 函数从 <cmath> 库来计算浮点数的绝对值。
  2. 格式化输出:使用 fixedsetprecision<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 ),输出 <.

这段代码通过基础的条件判断处理了整数的比较问题,并输出了正确的比较符号,符合题目的要求。对于给定的数据范围,这种简单的比较方法是有效的。

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:收集瓶盖赢大奖

题目描述
解题思路

这个问题要求检查两个条件之一是否满足:

  1. “幸运”瓶盖的数量是否大于等于10。
  2. “鼓励”瓶盖的数量是否大于等于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; 读取语文和数学的成绩。
  • 创建布尔变量 failChinesefailMath 来判断语文和数学成绩是否不及格。
  • 通过 failChinese + failMath == 1 判断恰好有一门课不及格。这里利用了布尔值在数学运算中转换为0(假)或1(真)的特性。
  • 根据条件的真假输出相应的结果。

这种方法通过逻辑判断和简单的布尔运算直接解决了问题,代码简洁且易于理解。

04-17 12:39