ZZNUOJ(C/C++)基础练习1021——1030(详解版)

news2025/3/7 5:02:26

目录

1021 : 三数求大值

C语言版

C++版 

代码逻辑解释

1022 : 三整数排序

C语言版

C++版

代码逻辑解释

补充 (C语言版,三目运算)C++类似

代码逻辑解释

 1023 : 大小写转换

C语言版

C++版

 1024 : 计算字母序号

C语言版

C++版

代码逻辑总结

1025 : 最大字符

C语言版

C++版

补充(c++ 版,使用max函数) 

寻找最大字符

1026 : 字符类型判断

C语言版

C++版 

 判断字符类型

1027 : 判断水仙花数

C语言版

C++版

1028 : I love 闰年!

​编辑

C语言版

C++版

1029 : 三角形判定

​编辑

C语言版

C++版

1030 : 判断直角三角形

C语言版

C++版

补充C语言版

补充C++版

 

收藏加关注,观看不迷路


 

1021 : 三数求大值

题目描述

从键盘输入三个整数x,y和z,求出最大数的值。

输入

输入三个整数x,y和z。

输出

输出最大数的值。

样例输入

20 16 18

样例输出

20

C语言版

了解三目运算:简要介绍C语言/C++的三目运算符-CSDN博客

#include<stdio.h>  // 包含标准输入输出头文件,用于使用printf和scanf函数

int main() {
    int a, b, c;  // 定义三个整数变量a、b、c,用于存储输入的三个数

    // 使用scanf从标准输入读取三个整数,分别存储到变量a、b、c中
    scanf("%d%d%d", &a, &b, &c);

    // 使用三元运算符比较a和b的大小,将较大的值赋给变量max
    int max = a > b ? a : b;

    // 再次使用三元运算符比较max和c的大小,将最终的最大值赋给max
    max = max > c ? max : c;

    // 使用printf将最大值输出到标准输出,并换行
    printf("%d\n", max);

    return 0;  // 程序正常结束,返回0
}

C++版 

了解max函数:简要介绍C++中的 max 和 min 函数以及返回值-CSDN博客

#include<iostream>  // 包含输入输出流库,用于使用cin和cout
#include<algorithm> // 包含算法库,用于使用std::max等算法函数
using namespace std; // 使用标准命名空间,避免每次调用标准库函数或对象时都加std::

int main() {
    int a, b, c; // 定义三个整数变量a、b、c,用于存储用户输入的三个数

    // 使用cin从标准输入读取三个整数,分别存储到变量a、b、c中
    cin >> a >> b >> c;

    // 使用std::max函数比较a和b的大小,将较大的值赋给变量maxa
    int maxa = max(a, b);

    // 再次使用std::max函数比较maxa和c的大小,将最终的最大值赋给maxa
    maxa = max(maxa, c);

    // 使用cout将最大值输出到标准输出,并换行
    cout << maxa << endl;

    return 0; // 程序正常结束,返回0
}

代码逻辑解释

  1. 输入三个整数

    • 使用 cin 从用户输入中读取三个整数,分别存储到变量 abc 中。

  2. 比较 ab 的大小

    • 使用 std::max 函数比较 ab 的大小,将较大的值赋给变量 maxa

  3. 比较 maxac 的大小

    • 再次使用 std::max 函数比较 maxac 的大小,将最终的最大值赋给 maxa

  4. 输出最大值

    • 使用 cout 将最大值输出到标准输出,并换行。

1022 : 三整数排序

题目描述

从键盘输入三个整数x,y和z,按从大到小的顺序输出它们的值。

输入

输入三个整数x,y和z。

输出

按从大到小的顺序输出这三个整数,数据之间用空格隔开。

样例输入

20 16 18

样例输出

20 18 16

C语言版

#include<stdio.h>  // 包含标准输入输出头文件,用于使用scanf和printf函数

int main() {
    int a, b, c, mid;  // 定义三个整数变量a、b、c用于存储输入的三个数,mid用于临时交换值

    // 使用scanf从标准输入读取三个整数,分别存储到变量a、b、c中
    scanf("%d%d%d", &a, &b, &c);

    // 第一步:确保a是a和b中的较大值
    if (a < b) {  // 如果a小于b
        mid = a;  // 将a的值暂存到mid
        a = b;    // 将b的值赋给a
        b = mid;  // 将mid(原a的值)赋给b
    }

    // 第二步:确保a是a和c中的较大值
    if (a < c) {  // 如果a小于c
        mid = a;  // 将a的值暂存到mid
        a = c;    // 将c的值赋给a
        c = mid;  // 将mid(原a的值)赋给c
    }

    // 第三步:确保b是b和c中的较大值
    if (b < c) {  // 如果b小于c
        mid = b;  // 将b的值暂存到mid
        b = c;    // 将c的值赋给b
        c = mid;  // 将mid(原b的值)赋给c
    }

    // 输出排序后的结果,a是最大的,c是最小的
    printf("%d %d %d\n", a, b, c);

    return 0;  // 程序正常结束,返回0
}

C++版

#include<iostream>  // 包含标准输入输出流库
#include<algorithm> // 包含标准算法库(虽然在这个程序中没有用到算法库的功能)
using namespace std; // 使用标准命名空间,避免每次调用标准库功能时都需要前缀std::

int main() {
    int a, b, c, mid;  // 定义四个整数变量,a、b、c用于存储输入的三个数,mid用于临时交换值
    cin >> a >> b >> c;  // 从标准输入读取三个整数,分别存储到变量a、b、c中

    // 第一步:确保a是a和b中的较大值
    if (a < b) {  // 如果a小于b
        mid = a;  // 将a的值暂存到mid
        a = b;    // 将b的值赋给a
        b = mid;  // 将mid(原a的值)赋给b
    }

    // 第二步:确保a是a和c中的较大值
    if (a < c) {  // 如果a小于c
        mid = a;  // 将a的值暂存到mid
        a = c;    // 将c的值赋给a
        c = mid;  // 将mid(原a的值)赋给c
    }

    // 第三步:确保b是b和c中的较大值
    if (b < c) {  // 如果b小于c
        mid = b;  // 将b的值暂存到mid
        b = c;    // 将c的值赋给b
        c = mid;  // 将mid(原b的值)赋给c
    }

    // 按从大到小的顺序输出三个数
    cout << a << " " << b << " " << c << endl;

    return 0;  // 程序正常结束,返回0
}

代码逻辑解释

  1. 输入三个整数

    • 使用 cin 从用户输入中读取三个整数,分别存储到变量 abc 中。

  2. 确保 aab 中的较大值

    • 如果 a 小于 b,则交换 ab 的值,使得 a 始终大于等于 b

  3. 确保 aac 中的较大值

    • 如果 a 小于 c,则交换 ac 的值,使得 a 始终大于等于 c

  4. 确保 bbc 中的较大值

    • 如果 b 小于 c,则交换 bc 的值,使得 b 始终大于等于 c

  5. 输出结果

    • 经过上述步骤后,a 是最大的,c 是最小的,b 是中间的值。使用 cout 按顺序输出 abc

 

补充 (C语言版,三目运算)C++类似

#include<stdio.h>  // 包含标准输入输出头文件,用于使用scanf和printf函数

int main() {
    int a, b, c;  // 定义三个整数变量a、b、c用于存储输入的三个数
    scanf("%d%d%d", &a, &b, &c);  // 从标准输入读取三个整数,分别存储到变量a、b、c中

    // 使用三元运算符找到最大值
    // 首先比较a和b,如果a大于b,则比较a和c,否则比较b和c
    int max = (a > b) ? ((a > c) ? a : c) : ((b > c) ? b : c);

    // 使用三元运算符找到最小值
    // 首先比较a和b,如果a小于b,则比较a和c,否则比较b和c
    int min = (a < b) ? ((a < c) ? a : c) : ((b < c) ? b : c);

    // 计算中间值
    // 中间值等于三个数的总和减去最大值和最小值
    int mid = (a + b + c) - max - min;

    // 按从大到小的顺序输出三个数
    printf("%d %d %d\n", max, mid, min);

    return 0;  // 程序正常结束,返回0
}

代码逻辑解释

  1. 输入三个整数

    • 使用 scanf 从用户输入中读取三个整数,分别存储到变量 abc 中。

  2. 找到最大值

    • 使用嵌套的三元运算符比较 ab,然后比较结果与 c,最终确定最大值。

  3. 找到最小值

    • 使用嵌套的三元运算符比较 ab,然后比较结果与 c,最终确定最小值。

  4. 计算中间值

    • 中间值可以通过三个数的总和减去最大值和最小值得到。

  5. 输出结果

    • 按从大到小的顺序输出三个数:最大值、中间值、最小值。

 

 1023 : 大小写转换

题目描述

输入一个字母,若是小写字母,则变为大写输出,否则,原样输出 。

输入

输入为一个字母a 。

输出

输出为转换后的字母,单独占一行 。

样例输入

a

样例输出

A

了解ASCII 码表常用的 ASCII 码表字符-CSDN博客

C语言版

#include<stdio.h>  // 包含标准输入输出头文件,用于使用scanf和printf函数

int main() {
    char ch;  // 定义一个字符变量ch,用于存储输入的字符
    scanf("%c", &ch);  // 从标准输入读取一个字符,存储到变量ch中

    // 判断输入的字符是否是小写字母
    if (ch >= 'a' && ch <= 'z') {
        // 如果是小写字母,将其转换为大写字母
        // 小写字母和大写字母在ASCII码表中相差32
        ch = ch - 32;
    }

    // 输出转换后的字符
    printf("%c\n", ch);

    return 0;  // 程序正常结束,返回0
}

C++版

#include<iostream>  // 包含标准输入输出流库
#include<algorithm> // 包含标准算法库(虽然在这个程序中没有用到算法库的功能)
using namespace std; // 使用标准命名空间,避免每次调用标准库功能时都需要前缀std::

int main() {
    char ch;  // 定义一个字符变量ch,用于存储输入的字符
    cin >> ch;  // 从标准输入读取一个字符,存储到变量ch中

    // 判断输入的字符是否是小写字母
    if (ch >= 'a' && ch <= 'z') {
        // 如果是小写字母,将其转换为大写字母
        // 小写字母和大写字母在ASCII码表中相差32
        ch = ch - 32;
    }

    // 输出转换后的字符
    cout << ch << endl;

    return 0;  // 程序正常结束,返回0
}
  1. 输入一个字符

    • 使用 scanf 从用户输入中读取一个字符,存储到变量 ch 中。

  2. 判断是否是小写字母

    • 使用条件表达式 ch >= 'a' && ch <= 'z' 判断输入的字符是否是小写字母。

    • 在 ASCII 码表中,小写字母 'a' 到 'z' 的范围是 97 到 122。

  3. 转换为大写字母

    • 如果输入的字符是小写字母,通过 ch = ch - 32 将其转换为大写字母。

    • 在 ASCII 码表中,大写字母 'A' 到 'Z' 的范围是 65 到 90,小写字母和大写字母的 ASCII 码值相差 32。

 1024 : 计算字母序号

题目描述

输入一个英文字母(可能是大写,也可能是小写),输出该字母在字母表中的序号(’a’和’A’的序号为1)。

输入

输入只有一个英文字母。

输出

输出一个整数,表示该字母在字母表的序号,输出单独占一行。

样例输入

D

样例输出

4

 了解ASCII 码表常用的 ASCII 码表字符-CSDN博客

C语言版

#include<stdio.h> // 包含标准输入输出库
int main()
{
    char ch; // 定义一个字符变量 ch,用于存储输入的字符
    int num; // 定义一个整数变量 num,用于存储字母对应的序号

    scanf("%c", &ch); // 从标准输入读取一个字符,存储到变量 ch 中

    if(ch >= 'a' && ch <= 'z') // 判断输入的字符是否为小写字母
    {
        num = ch - 'a' + 1; // 如果是小写字母,计算字母序号
        // 例如,'a' 的 ASCII 码是 97,'b' 是 98,'a' - 'a' = 0,所以 'a' 对应的序号是 1
    }
    if(ch >= 'A' && ch <= 'Z') // 判断输入的字符是否为大写字母
    {
        num = ch - 'A' + 1; // 如果是大写字母,计算字母序号
        // 例如,'A' 的 ASCII 码是 65,'B' 是 66,'A' - 'A' = 0,所以 'A' 对应的序号是 1
    }

    printf("%d\n", num); // 输出字母对应的序号
    return 0; // 程序正常结束,返回 0
}

C++版

#include<iostream>
#include<algorithm>
using namespace std;

int main()
{
    char ch; // 定义一个字符变量 ch
    int num; // 定义一个整数变量 num
    cin >> ch; // 从标准输入读取一个字符并存储在 ch 中

    if(ch >= 'a' && ch <= 'z') // 判断 ch 是否为小写字母
    {
        num = ch - 'a' + 1; // 将小写字母转换为对应的字母序号
    }
    if(ch >= 'A' && ch <= 'Z') // 判断 ch 是否为大写字母
    {
        num = ch - 'A' + 1; // 将大写字母转换为对应的字母序号
    }

    cout << num << endl; // 输出字母对应的序号
    return 0; // 返回 0,表示程序正常结束
}

代码逻辑总结

  1. 输入字符:输入一个字符,存储在变量 ch 中。

  2. 判断字符类型

    • 如果字符是小写字母('a''z'),计算其序号为 ch - 'a' + 1

    • 如果字符是大写字母('A''Z'),计算其序号为 ch - 'A' + 1

  3. 输出序号:将计算得到的序号输出。

  4. 结束程序:程序正常结束。

1025 : 最大字符

题目描述

给你三个ASCII字符(不含空白字符:包括空格、制表符\t、回车换行符\n),找出其中最大的那个。

输入

输入包含三个字符,之间有一个空格隔开,输入的格式为:
a b c 。

输出

输出ASII码最大的那个字符,占一行 。

样例输入

a b c

样例输出

c

注意:使用scanf输入字符时,在%d之间需加一个空格,这是因为空格也是字符。

C语言版

#include<stdio.h> // 包含标准输入输出库

int main()
{
    char ch1, ch2, ch3; // 定义三个字符变量,用于存储用户输入的三个字符
    scanf("%c %c %c", &ch1, &ch2, &ch3); // 从标准输入读取三个字符,分别存储到 ch1、ch2 和 ch3 中

    char max = ch1 > ch2 ? ch1 : ch2; // 使用三元运算符,比较 ch1 和 ch2,取较大的值赋给 max
    max = max > ch3 ? max : ch3; // 再次使用三元运算符,比较 max 和 ch3,取较大的值赋给 max

    printf("%c\n", max); // 输出 max,即三个字符中最大的字符
    return 0; // 程序正常结束,返回 0
}

C++版

#include<iostream> // 包含标准输入输出流库
#include<algorithm> // 包含算法库(虽然在这个程序中没有用到算法库的功能)
using namespace std; // 使用标准命名空间,避免每次调用标准库功能时都要加 std::

int main()
{
    char ch1, ch2, ch3; // 定义三个字符变量,用于存储用户输入的三个字符
    cin >> ch1 >> ch2 >> ch3; // 从标准输入依次读取三个字符,分别存储到 ch1、ch2 和 ch3 中

    char max = ch1 > ch2 ? ch1 : ch2; // 使用三元运算符比较 ch1 和 ch2,取较大的字符赋值给 max
    max = max > ch3 ? max : ch3; // 再次使用三元运算符比较当前 max 和 ch3,取较大的字符赋值给 max

    cout << max << endl; // 输出 max,即三个字符中最大的字符,并换行
    return 0; // 程序正常结束,返回 0
}

补充(c++ 版,使用max函数) 

了解max函数:简要介绍C++中的 max 和 min 函数以及返回值-CSDN博客

#include<iostream> // 包含标准输入输出流库
#include<algorithm> // 包含标准算法库,用于使用 std::max 函数
using namespace std; // 使用标准命名空间,避免每次调用标准库功能时都要加 std::

int main()
{
    char ch1, ch2, ch3; // 定义三个字符变量,用于存储用户输入的三个字符
    cin >> ch1 >> ch2 >> ch3; // 从标准输入依次读取三个字符,分别存储到 ch1、ch2 和 ch3 中

    char maxa = max({ch1, ch2, ch3}); // 使用 std::max 函数直接找出三个字符中的最大值
    // max 函数接受一个初始化列表 {ch1, ch2, ch3},并返回其中的最大值

    cout << maxa << endl; // 输出最大值 maxa,并换行
    return 0; // 程序正常结束,返回 0
}
寻找最大字符
  • char maxa = max({ch1, ch2, ch3});

    • 使用 std::max 函数直接找出三个字符中的最大值。

    • {ch1, ch2, ch3} 是一个初始化列表,表示将 ch1ch2ch3 作为参数传递给 std::max 函数。

    • std::max 函数会比较这些字符的 ASCII 值,返回其中最大的字符。 

1026 : 字符类型判断

题目描述

从键盘输入一个字符,判断该字符是否大写字母、小写字母、数字字符或其他字符。分别输出对应的提示信息。

输入

输入一个字符。

输出

如果该字符是大写字母,则输出“upper”;若是小写字母,则输出“lower”;若是数字字符,则输出“digit”;若是其他字符,则输出“other”。(输出不含双引号)。

样例输入

1

样例输出

digit

C语言版

#include<stdio.h> // 包含标准输入输出库

int main()
{
    char ch; // 定义一个字符变量,用于存储用户输入的字符
    scanf("%c", &ch); // 从标准输入读取一个字符,存储到变量 ch 中

    if(ch >= 'A' && ch <= 'Z') // 判断字符是否为大写字母
    {
        printf("upper\n"); // 如果是大写字母,输出 "upper"
    }
    else if(ch >= 'a' && ch <= 'z') // 判断字符是否为小写字母
    {
        printf("lower\n"); // 如果是小写字母,输出 "lower"
    }
    else if(ch >= '0' && ch <= '9') // 判断字符是否为数字
    {
        printf("digit\n"); // 如果是数字,输出 "digit"
    }
    else // 如果字符不属于上述任何一种情况
    {
        printf("other\n"); // 输出 "other"
    }
    return 0; // 程序正常结束,返回 0
}

C++版 

#include<iostream> // 包含标准输入输出流库
#include<algorithm> // 包含标准算法库(虽然在这个程序中没有用到算法库的功能)
using namespace std; // 使用标准命名空间,避免每次调用标准库功能时都要加 std::

int main()
{
    char ch; // 定义一个字符变量,用于存储用户输入的字符
    cin >> ch; // 从标准输入读取一个字符,存储到变量 ch 中

    if(ch >= 'A' && ch <= 'Z') // 判断字符是否为大写字母
    {
        cout << "upper" << endl; // 如果是大写字母,输出 "upper" 并换行
    }
    else if(ch >= 'a' && ch <= 'z') // 判断字符是否为小写字母
    {
        cout << "lower" << endl; // 如果是小写字母,输出 "lower" 并换行
    }
    else if(ch >= '0' && ch <= '9') // 判断字符是否为数字
    {
        cout << "digit" << endl; // 如果是数字,输出 "digit" 并换行
    }
    else // 如果字符不属于上述任何一种情况
    {
        cout << "other" << endl; // 输出 "other" 并换行
    }
    return 0; // 程序正常结束,返回 0
}
 判断字符类型
  • 大写字母判断

    • if(ch >= 'A' && ch <= 'Z'):判断字符是否在大写字母的范围内(ASCII 值从 65 到 90)。

    • 如果是大写字母,输出 "upper"

  • 小写字母判断

    • else if(ch >= 'a' && ch <= 'z'):判断字符是否在小写字母的范围内(ASCII 值从 97 到 122)。

    • 如果是小写字母,输出 "lower"

  • 数字判断

    • else if(ch >= '0' && ch <= '9'):判断字符是否在数字的范围内(ASCII 值从 48 到 57)。

    • 如果是数字,输出 "digit"

  • 其他字符

    • else:如果字符不属于上述任何一种情况(即不是大写字母、小写字母或数字),输出 "other"

1027 : 判断水仙花数

题目描述

春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的:“水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=1^{3}+5^{3}+3^{3}
现在要求输入一个三位数,判断该数是否是水仙花数,如果是,输出“yes”,否则输出“no”。

输入

输入一个三位的正整数。

输出

输出“yes”或“no”。

样例输入

153

样例输出

yes

C语言版

#include<stdio.h> // 包含标准输入输出库

int main() // 主函数
{
    int num, a, b, c; // 定义变量:num用于存储输入的数字,a、b、c分别用于存储个位、十位和百位数字
    scanf("%d", &num); // 从用户输入中读取一个整数,存储到变量num中

    // 分离数字:将num的个位、十位和百位分别提取出来
    a = num % 10; // 提取个位数字:num除以10的余数
    b = num / 10 % 10; // 提取十位数字:先将num除以10去掉个位,再取余
    c = num / 100; // 提取百位数字:直接将num除以100

    // 判断是否为水仙花数
    if (num == a * a * a + b * b * b + c * c * c) // 判断num是否等于其各位数字的立方和
    {
        printf("yes\n"); // 如果是水仙花数,输出"yes"
    }
    else
    {
        printf("no\n"); // 如果不是水仙花数,输出"no"
    }

    return 0; // 程序正常结束
}

C++版

#include<iostream> // 包含标准输入输出流库
using namespace std; // 使用标准命名空间std

int main() // 主函数
{
    int num, a, b, c; // 定义变量:num用于存储输入的数字,a、b、c分别用于存储个位、十位和百位数字
    cin >> num; // 从标准输入读取一个整数,存储到变量num中

    // 分离数字:将num的个位、十位和百位分别提取出来
    a = num % 10; // 提取个位数字:num除以10的余数
    b = num / 10 % 10; // 提取十位数字:先将num除以10去掉个位,再取余
    c = num / 100; // 提取百位数字:直接将num除以100

    // 判断是否为水仙花数
    if (num == a * a * a + b * b * b + c * c * c) // 判断num是否等于其各位数字的立方和
    {
        cout << "yes" << endl; // 如果是水仙花数,输出"yes"
    }
    else
    {
        cout << "no" << endl; // 如果不是水仙花数,输出"no"
    }

    return 0; // 程序正常结束
}

1028 : I love 闰年!

题目描述

根据一个年份,判断是否是闰年。

输入

输入为一个整数,表示一个年份。

输出

如果是闰年,输出"Yes",否则输出"No"。输出单独占一行。

样例输入

2012

样例输出

Yes

注意闰年的判定方法

C语言版

#include<stdio.h> // 包含标准输入输出库
int main() // 主函数
{
    int year; // 定义一个整型变量year,用于存储用户输入的年份
    scanf("%d", &year); // 从用户输入中读取一个整数,存储到变量year中

    // 判断输入的年份是否为闰年
    if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) // 闰年的判断条件
    {
        printf("Yes\n"); // 如果是闰年,输出"Yes"
    }
    else
    {
        printf("No\n"); // 如果不是闰年,输出"No"
    }

    return 0; // 程序正常结束
}

C++版

#include<iostream> // 包含标准输入输出流库
using namespace std; // 使用标准命名空间std

int main() // 主函数
{
    int year; // 定义一个整型变量year,用于存储用户输入的年份
    cin >> year; // 从标准输入读取一个整数,存储到变量year中

    // 判断输入的年份是否为闰年
    if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) // 闰年的判断条件
    {
        cout << "Yes" << endl; // 如果是闰年,输出"Yes"
    }
    else
    {
        cout << "No\n" << endl; // 如果不是闰年,输出"No",并换行
    }

    return 0; // 程序正常结束
}

 

1029 : 三角形判定

题目描述

给你三个正整数,判断用这三个整数做边长是否能构成一个三角形。

输入

输入为三个正整数(32-int),中间有一个空格隔开。

输出

如果能构成三角形,输出"Yes",否则输出"No" 。

样例输入

3 4 5

样例输出

Yes

C语言版

#include<stdio.h> // 包含标准输入输出库

int main() // 主函数
{
    int a, b, c; // 定义三个整型变量a、b、c,用于存储用户输入的三个数
    scanf("%d%d%d", &a, &b, &c); // 从用户输入中读取三个整数,分别存储到变量a、b、c中

    // 判断三个数是否可以构成三角形
    if (a + b > c && a + c > b && b + c > a) // 根据三角形的不等式定理进行判断
    {
        printf("Yes\n"); // 如果满足条件,输出"Yes"
    }
    else
    {
        printf("No\n"); // 如果不满足条件,输出"No"
    }

    return 0; // 程序正常结束
}

C++版

#include<iostream> // 包含标准输入输出流库
using namespace std; // 使用标准命名空间std

int main() // 主函数
{
    int a, b, c; // 定义三个整型变量a、b、c,用于存储用户输入的三个数
    cin >> a >> b >> c; // 从标准输入读取三个整数,分别存储到变量a、b、c中

    // 判断三个数是否可以构成三角形
    if (a + b > c && a + c > b && b + c > a) // 根据三角形的不等式定理进行判断
    {
        cout << "Yes" << endl; // 如果满足条件,输出"Yes"
    }
    else
    {
        cout << "No" << endl; // 如果不满足条件,输出"No"
    }

    return 0; // 程序正常结束
}

1030 : 判断直角三角形

题目描述

输入三正整数,判断用这三个整数做边长是否能构成一个直角三角形。

输入

输入三个正整数,判断用这三个整数做边长是否能构成一个直角三角形。

输出

能否构成直角三角形。如能输出:yes.若不能,输出:no。

样例输入

6 8 10

样例输出

yes

注意输出为小写的单词

 

C语言版

#include<stdio.h> // 包含标准输入输出库

int main() // 主函数
{
    int a, b, c; // 定义三个整型变量a、b、c,用于存储用户输入的三个数
    scanf("%d%d%d", &a, &b, &c); // 从用户输入中读取三个整数,分别存储到变量a、b、c中

    // 确定最大值、最小值和中间值
    int max = a > b ? (a > c ? a : c) : (b > c ? b : c); // 最大值
    int min = a < b ? (a < c ? a : c) : (b < c ? b : c); // 最小值
    int mid = a + b + c - min - max; // 中间值

    // 判断是否满足勾股定理
    if (max * max == min * min + mid * mid) // 检查最大值的平方是否等于最小值和中间值平方和
    {
        printf("yes\n"); // 如果满足条件,输出"yes"
    }
    else
    {
        printf("no\n"); // 如果不满足条件,输出"no"
    }

    return 0; // 程序正常结束
}

C++版

#include<iostream> // 包含标准输入输出流库
#include<algorithm> // 包含算法库(虽然在这个程序中没有用到算法库的功能)
using namespace std; // 使用标准命名空间std

int main() // 主函数
{
    int a, b, c; // 定义三个整型变量a、b、c,用于存储用户输入的三个数
    cin >> a >> b >> c; // 从标准输入读取三个整数,分别存储到变量a、b、c中

    // 确定最大值、最小值和中间值
    int max = a > b ? (a > c ? a : c) : (b > c ? b : c); // 最大值
    int min = a < b ? (a < c ? a : c) : (b < c ? b : c); // 最小值
    int mid = a + b + c - min - max; // 中间值

    // 判断是否满足勾股定理
    if (max * max == min * min + mid * mid) // 检查最大值的平方是否等于最小值和中间值平方和
    {
        cout << "yes" << endl; // 如果满足条件,输出"yes"
    }
    else
    {
        cout << "no" << endl; // 如果不满足条件,输出"no"
    }

    return 0; // 程序正常结束
}

补充C语言版

#include<stdio.h>
int main()
{
	int a,b,c,mid;
	scanf("%d%d%d",&a,&b,&c);
	 // 第一步:确保a是a和b中的较大值
    if (a < b) {  // 如果a小于b
        mid = a;  // 将a的值暂存到mid
        a = b;    // 将b的值赋给a
        b = mid;  // 将mid(原a的值)赋给b
    }

    // 第二步:确保a是a和c中的较大值
    if (a < c) {  // 如果a小于c
        mid = a;  // 将a的值暂存到mid
        a = c;    // 将c的值赋给a
        c = mid;  // 将mid(原a的值)赋给c
    }
    //两次if判断,保证a为三个数中的最大值

    // 判断是否满足勾股定理
    if (a * a == b * b + c * c) // 检查最大值的平方是否等于另外两个数的平方和
    {
        printf("yes\n"); // 如果满足条件,输出"yes"
    }
    else
    {
        printf("no\n"); // 如果不满足条件,输出"no"
    }
	return 0;
}

补充C++版

#include<iostream> // 包含标准输入输出流库
using namespace std; // 使用标准命名空间std

int main() // 主函数
{
    int a, b, c, mid; // 定义四个整型变量a、b、c和mid
    cin >> a >> b >> c; // 从标准输入读取三个整数,分别存储到变量a、b、c中

    // 第一步:确保a是a和b中的较大值
    if (a < b) {  // 如果a小于b
        mid = a;  // 将a的值暂存到mid
        a = b;    // 将b的值赋给a
        b = mid;  // 将mid(原a的值)赋给b
    }

    // 第二步:确保a是a和c中的较大值
    if (a < c) {  // 如果a小于c
        mid = a;  // 将a的值暂存到mid
        a = c;    // 将c的值赋给a
        c = mid;  // 将mid(原a的值)赋给c
    }
    //两次if判断,保证a为三个数中的最大值

    // 判断是否满足勾股定理
    if (a * a == b * b + c * c) // 检查最大值的平方是否等于另外两个数的平方和
    {
        cout << "yes" << endl; // 如果满足条件,输出"yes"
    }
    else
    {
        cout << "no" << endl; // 如果不满足条件,输出"no"
    }

    return 0; // 程序正常结束
}

 

收藏加关注,观看不迷路

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2289580.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2025 年,链上固定收益领域迈向新时代

“基于期限的债券市场崛起与 Secured Finance 的坚定承诺” 2025年&#xff0c;传统资产——尤其是股票和债券——大规模涌入区块链的浪潮将创造历史。BlackRock 首席执行官 Larry Fink 近期在彭博直播中表示&#xff0c;代币化股票和债券将逐步融入链上生态&#xff0c;将进一…

基于互联网+智慧水务信息化整体解决方案

智慧水务的概述与发展背景 智慧水务是基于互联网、云计算、大数据、物联网等先进技术&#xff0c;对水务行业的工程建设、生产管理、管网运营、营销服务及企业综合管理等业务进行全面智慧化管理的创新模式。它旨在解决水务企业分散经营、管理水平不高、投资不足等问题。 水务…

FIDL:Flutter与原生通讯的新姿势,不局限于基础数据类型

void initUser(User user); } 2、执行命令./gradlew assembleDebug&#xff0c;生成IUserServiceStub类和fidl.json文件 3、打开通道&#xff0c;向Flutter公开方法 FidlChannel.openChannel(getFlutterEngine().getDartExecutor(), new IUserServiceStub() { Override void…

文件读写操作

写入文本文件 #include <iostream> #include <fstream>//ofstream类需要包含的头文件 using namespace std;void test01() {//1、包含头文件 fstream//2、创建流对象ofstream fout;/*3、指定打开方式&#xff1a;1.ios::out、ios::trunc 清除文件内容后打开2.ios:…

cf1000(div.2)

Minimal Coprime最小公倍数 输入&#xff1a; 6 1 2 1 10 49 49 69 420 1 1 9982 44353 输出&#xff1a; 1 9 0 351 1 34371 代码

【2025年数学建模美赛E题】(农业生态系统)完整解析+模型代码+论文

生态共生与数值模拟&#xff1a;生态系统模型的物种种群动态研究 摘要1Introduction1.1Problem Background1.2Restatement of the Problem1.3Our Work 2 Assumptions and Justifications3 Notations4 模型的建立与求解4.1 农业生态系统模型的建立与求解4.1.1 模型建立4.1.2求解…

jhat命令详解

jhat 命令通常与 jmap 搭配使用&#xff0c;用来分析 jmap 生成的 dump 文件&#xff0c;jhat 内置了一个微型的HTTP/HTML服务器&#xff0c;生成 dump 的分析结果后&#xff0c;可以在浏览器中查看。 命令的使用格式如下。&#xff08;其中heap-dump-file为必填项&#xff09…

FFmpeg(7.1版本)的基本组成

1. 前言 FFmpeg 是一个非常流行的开源项目,它提供了处理音频、视频以及其他多媒体内容的强大工具。FFmpeg 包含了大量的库,可以用来解码、编码、转码、处理和播放几乎所有类型的多媒体文件。它广泛用于视频和音频的录制、转换、流媒体传输等领域。 2. FFmpeg的组成 1. FFmp…

DDD - 领域驱动设计分层架构:构建可演化的微服务架构

文章目录 引言1. 什么是DDD分层架构&#xff1f;1.1 DDD分层架构的演变1.2 四层架构的起源与问题1.3 依赖倒置和五层架构 2. DDD分层架构的核心层次2.1 用户接口层&#xff08;User Interface Layer&#xff09;2.2 应用层&#xff08;Application Layer&#xff09;2.3 领域层…

主流的AEB标准有哪些?

目录 1、AEB的技术构成与工作原理 2、典型应用场景举例 3、AEB的功能分类 4、AEB系统性能评估的关键因素 5、全球AEB技术标准概览 5.1、联合国欧洲经济委员会&#xff08;UN ECE&#xff09; 5.2、美国NHTSA法规 5.3、中国标准 5.4、印度AIS 185 5.5、澳大利亚ADR法规…

开源智慧园区管理系统如何重塑企业管理模式与运营效率

内容概要 在如今快速发展的商业环境中&#xff0c;企业面临着日益复杂的管理挑战。开源智慧园区管理系统应运而生&#xff0c;旨在通过技术创新来应对这些挑战。它不仅是一个简单的软件工具&#xff0c;而是一个全面整合大数据、物联网和智能化功能的综合平台&#xff0c;为企…

decison tree 决策树

熵 信息增益 信息增益描述的是在分叉过程中获得的熵减&#xff0c;信息增益即熵减。 熵减可以用来决定什么时候停止分叉&#xff0c;当熵减很小的时候你只是在不必要的增加树的深度&#xff0c;并且冒着过拟合的风险 决策树训练(构建)过程 离散值特征处理&#xff1a;One-Hot…

【AI论文】VideoAuteur:迈向长叙事视频

摘要&#xff1a;近期的视频生成模型在制作持续数秒的高质量视频片段方面已展现出令人鼓舞的成果。然而&#xff0c;这些模型在生成能传达清晰且富有信息量的长序列时面临挑战&#xff0c;限制了它们支持连贯叙事的能力。在本文中&#xff0c;我们提出了一个大规模烹饪视频数据…

循环神经网络(RNN)+pytorch实现情感分析

目录 一、背景引入 二、网络介绍 2.1 输入层 2.2 循环层 2.3 输出层 2.4 举例 2.5 深层网络 三、网络的训练 3.1 训练过程举例 1&#xff09;输出层 2&#xff09;循环层 3.2 BPTT 算法 1&#xff09;输出层 2&#xff09;循环层 3&#xff09;算法流程 四、循…

Linux网络 | 网络层IP报文解析、认识网段划分与IP地址

前言&#xff1a;本节内容为网络层。 主要讲解IP协议报文字段以及分离有效载荷。 另外&#xff0c; 本节也会带领友友认识一下IP地址的划分。 那么现在废话不多说&#xff0c; 开始我们的学习吧&#xff01;&#xff01; ps&#xff1a;本节正式进入网络层喽&#xff0c; 友友们…

2025年大年初一篇,C#调用GPU并行计算推荐

C#调用GPU库的主要目的是利用GPU的并行计算能力&#xff0c;加速计算密集型任务&#xff0c;提高程序性能&#xff0c;支持大规模数据处理&#xff0c;优化资源利用&#xff0c;满足特定应用场景的需求&#xff0c;并提升用户体验。在需要处理大量并行数据或进行复杂计算的场景…

python算法和数据结构刷题[2]:链表、队列、栈

链表 链表的节点定义&#xff1a; class Node():def __init__(self,item,nextNone):self.itemitemself.nextNone 删除节点&#xff1a; 删除节点前的节点的next指针指向删除节点的后一个节点 添加节点&#xff1a; 单链表 class Node():"""单链表的结点&quo…

Baklib解析内容中台与人工智能技术带来的价值与机遇

内容概要 在数字化转型的浪潮中&#xff0c;内容中台与人工智能技术的结合为企业提供了前所未有的发展机遇。内容中台作为一种新的内容管理和生产模式&#xff0c;通过统一管理和协调各种内容资源&#xff0c;帮助企业更高效地整合内外部数据。而人工智能技术则以其强大的数据…

Flask框架基础入门教程_ezflaskapp

pip install flaskFlask 快速入门小应用 学东西&#xff0c;得先知道我们用这个东西&#xff0c;能做出来一个什么东西。 一个最小的基于flask 的应用可能看上去像下面这个样子&#xff1a; from flask import Flask app Flask(__name__)app.route(/) def hello_world():ret…

黑马点评 - 商铺类型缓存练习题(Redis List实现)

首先明确返回值是一个 List<ShopType> 类型那么我们修改此函数并在 TypeService 中声明 queryTypeList 方法&#xff0c;并在其实现类中实现此方法 GetMapping("list")public Result queryTypeList() {return typeService.queryTypeList();}实现此方法首先需要…