当前位置: 首页 > article >正文

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

目录

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.kler.cn/a/527393.html

相关文章:

  • LigerUI在MVC模式下的响应原则
  • Linux网络 | 网络层IP报文解析、认识网段划分与IP地址
  • 996引擎 - NPC-添加NPC引擎自带形象
  • 10.3 LangChain实战指南:解锁大模型应用的10大核心场景与架构设计
  • SAP SD学习笔记27 - 请求计划(开票计划)之1 - 定期请求
  • 【四川乡镇界面】图层shp格式arcgis数据乡镇名称和编码2020年wgs84无偏移内容测评
  • 白话DeepSeek-R1论文(二)| DeepSeek-R1:AI “升级打怪”,从“自学成才”到“全面发展”!
  • 数据结构-Stack和栈
  • python学opencv|读取图像(五十二)使用cv.matchTemplate()函数实现最佳图像匹配
  • FBX SDK的使用:基础知识
  • mysql索引snkw
  • 数组排序算法
  • 感悟人生路
  • Springboot项目开发的通用集成
  • 白话DeepSeek-R1论文(一)|AI的顿悟时刻:DeepSeek-R1-Zero 纯强化学习解锁推理新境界
  • AnyThingLLM本地私有知识库搭建
  • HIVE介绍(五)_hive limit
  • 为AI聊天工具添加一个知识系统 之81 详细设计之22 符号逻辑 之2
  • (笔记+作业)书生大模型实战营春节卷王班---L0G2000 Python 基础知识
  • 青少年编程与数学 02-008 Pyhon语言编程基础 09课题、布尔与判断语句
  • DeepSeek能执行程序吗?
  • 基于Spring Security 6的OAuth2 系列之八 - 授权服务器--Spring Authrization Server的基本原理
  • C++并行化编程
  • 解析 Oracle 中的 ALL_SYNONYMS 和 ALL_VIEWS 视图:查找同义词与视图的基础操作
  • 计算机网络一点事(21)
  • 主流的AEB标准有哪些?