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的大小,将较大的值赋给变量maxint max = a > b ? a : b;// 再次使用三元运算符比较max和c的大小,将最终的最大值赋给maxmax = 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的大小,将较大的值赋给变量maxaint maxa = max(a, b);// 再次使用std::max函数比较maxa和c的大小,将最终的最大值赋给maxamaxa = max(maxa, c);// 使用cout将最大值输出到标准输出,并换行cout << maxa << endl;return 0; // 程序正常结束,返回0
}
代码逻辑解释
输入三个整数:
使用
cin
从用户输入中读取三个整数,分别存储到变量a
、b
和c
中。比较
a
和b
的大小:
使用
std::max
函数比较a
和b
的大小,将较大的值赋给变量maxa
。比较
maxa
和c
的大小:
再次使用
std::max
函数比较maxa
和c
的大小,将最终的最大值赋给maxa
。输出最大值:
使用
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小于bmid = a; // 将a的值暂存到mida = b; // 将b的值赋给ab = mid; // 将mid(原a的值)赋给b}// 第二步:确保a是a和c中的较大值if (a < c) { // 如果a小于cmid = a; // 将a的值暂存到mida = c; // 将c的值赋给ac = mid; // 将mid(原a的值)赋给c}// 第三步:确保b是b和c中的较大值if (b < c) { // 如果b小于cmid = b; // 将b的值暂存到midb = c; // 将c的值赋给bc = 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小于bmid = a; // 将a的值暂存到mida = b; // 将b的值赋给ab = mid; // 将mid(原a的值)赋给b}// 第二步:确保a是a和c中的较大值if (a < c) { // 如果a小于cmid = a; // 将a的值暂存到mida = c; // 将c的值赋给ac = mid; // 将mid(原a的值)赋给c}// 第三步:确保b是b和c中的较大值if (b < c) { // 如果b小于cmid = b; // 将b的值暂存到midb = c; // 将c的值赋给bc = mid; // 将mid(原b的值)赋给c}// 按从大到小的顺序输出三个数cout << a << " " << b << " " << c << endl;return 0; // 程序正常结束,返回0
}
代码逻辑解释
输入三个整数:
使用
cin
从用户输入中读取三个整数,分别存储到变量a
、b
和c
中。确保
a
是a
和b
中的较大值:
如果
a
小于b
,则交换a
和b
的值,使得a
始终大于等于b
。确保
a
是a
和c
中的较大值:
如果
a
小于c
,则交换a
和c
的值,使得a
始终大于等于c
。确保
b
是b
和c
中的较大值:
如果
b
小于c
,则交换b
和c
的值,使得b
始终大于等于c
。输出结果:
经过上述步骤后,
a
是最大的,c
是最小的,b
是中间的值。使用cout
按顺序输出a
、b
和c
。
补充 (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和cint max = (a > b) ? ((a > c) ? a : c) : ((b > c) ? b : c);// 使用三元运算符找到最小值// 首先比较a和b,如果a小于b,则比较a和c,否则比较b和cint 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
}
代码逻辑解释
输入三个整数:
使用
scanf
从用户输入中读取三个整数,分别存储到变量a
、b
和c
中。找到最大值:
使用嵌套的三元运算符比较
a
和b
,然后比较结果与c
,最终确定最大值。找到最小值:
使用嵌套的三元运算符比较
a
和b
,然后比较结果与c
,最终确定最小值。计算中间值:
中间值可以通过三个数的总和减去最大值和最小值得到。
输出结果:
按从大到小的顺序输出三个数:最大值、中间值、最小值。
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码表中相差32ch = 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码表中相差32ch = ch - 32;}// 输出转换后的字符cout << ch << endl;return 0; // 程序正常结束,返回0
}
输入一个字符:
使用
scanf
从用户输入中读取一个字符,存储到变量ch
中。判断是否是小写字母:
使用条件表达式
ch >= 'a' && ch <= 'z'
判断输入的字符是否是小写字母。在 ASCII 码表中,小写字母 'a' 到 'z' 的范围是 97 到 122。
转换为大写字母:
如果输入的字符是小写字母,通过
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; // 定义一个字符变量 chint num; // 定义一个整数变量 numcin >> 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,表示程序正常结束
}
代码逻辑总结
输入字符:输入一个字符,存储在变量
ch
中。判断字符类型:
如果字符是小写字母(
'a'
到'z'
),计算其序号为ch - 'a' + 1
。如果字符是大写字母(
'A'
到'Z'
),计算其序号为ch - 'A' + 1
。输出序号:将计算得到的序号输出。
结束程序:程序正常结束。
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,取较大的值赋给 maxmax = max > ch3 ? max : ch3; // 再次使用三元运算符,比较 max 和 ch3,取较大的值赋给 maxprintf("%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,取较大的字符赋值给 maxmax = max > ch3 ? max : ch3; // 再次使用三元运算符比较当前 max 和 ch3,取较大的字符赋值给 maxcout << 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}
是一个初始化列表,表示将ch1
、ch2
和ch3
作为参数传递给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=
。
现在要求输入一个三位数,判断该数是否是水仙花数,如果是,输出“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; // 使用标准命名空间stdint 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; // 使用标准命名空间stdint 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; // 使用标准命名空间stdint 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; // 使用标准命名空间stdint 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小于bmid = a; // 将a的值暂存到mida = b; // 将b的值赋给ab = mid; // 将mid(原a的值)赋给b}// 第二步:确保a是a和c中的较大值if (a < c) { // 如果a小于cmid = a; // 将a的值暂存到mida = c; // 将c的值赋给ac = 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; // 使用标准命名空间stdint main() // 主函数
{int a, b, c, mid; // 定义四个整型变量a、b、c和midcin >> a >> b >> c; // 从标准输入读取三个整数,分别存储到变量a、b、c中// 第一步:确保a是a和b中的较大值if (a < b) { // 如果a小于bmid = a; // 将a的值暂存到mida = b; // 将b的值赋给ab = mid; // 将mid(原a的值)赋给b}// 第二步:确保a是a和c中的较大值if (a < c) { // 如果a小于cmid = a; // 将a的值暂存到mida = c; // 将c的值赋给ac = mid; // 将mid(原a的值)赋给c}//两次if判断,保证a为三个数中的最大值// 判断是否满足勾股定理if (a * a == b * b + c * c) // 检查最大值的平方是否等于另外两个数的平方和{cout << "yes" << endl; // 如果满足条件,输出"yes"}else{cout << "no" << endl; // 如果不满足条件,输出"no"}return 0; // 程序正常结束
}
收藏加关注,观看不迷路
相关文章:
ZZNUOJ(C/C++)基础练习1021——1030(详解版)
目录 1021 : 三数求大值 C语言版 C版 代码逻辑解释 1022 : 三整数排序 C语言版 C版 代码逻辑解释 补充 (C语言版,三目运算)C类似 代码逻辑解释 1023 : 大小写转换 C语言版 C版 1024 : 计算字母序号 C语言版 C版 代码逻辑总结…...
Linux学习笔记——系统维护命令
一、进程管理 1、ps命令(查) 来自process缩写,显示当前的进程状态。包括:进程的号码,发起者,系统资源,使用占比,运行状态等等。 语法格式:ps 参数 实例&#x…...
Harbor 部署
harbor镜像仓库搭建 版本v2.10.3 文章目录 一. docker 安装 harbor1. harbor 配置http访问1.1 下载harbor二进制包1.2 修改配置文件1.3 运行1.4 访问 2.【可选】harbor 配置https访问2.1 自签证书2.1 修改配置文件2.3 修改hosts文件2.4 运行2.5 访问 二. k8s 安装harbor1 .安装…...
three.js+WebGL踩坑经验合集(6.1):负缩放,负定矩阵和行列式的关系(2D版本)
春节忙完一轮,总算可以继续来写博客了。希望在春节假期结束之前能多更新几篇。 这一篇会偏理论多一点。笔者本没打算在这一系列里面重点讲理论,所以像相机矩阵推导这种网上已经很多优质文章的内容,笔者就一笔带过。 然而关于负缩放…...
开源的瓷砖式图像板系统Pinry
简介 什么是 Pinry ? Pinry 是一个开源的瓷砖式图像板系统,旨在帮助用户轻松保存、标记和分享图像、视频和网页。它提供了一种便于快速浏览的格式,适合喜欢整理和分享多种媒体内容的人。 主要特点 图像抓取和在线预览:支持从网页…...
LabVIEW透镜多参数自动检测系统
在现代制造业中,提升产品质量检测的自动化水平是提高生产效率和准确性的关键。本文介绍了一个基于LabVIEW的透镜多参数自动检测系统,该系统能够在单一工位上完成透镜的多项质量参数检测,并实现透镜的自动搬运与分选,极大地提升了检…...
socket实现HTTP请求,参考HttpURLConnection源码解析
背景 有台服务器,网卡绑定有2个ip地址,分别为: A:192.168.111.201 B:192.168.111.202 在这台服务器请求目标地址 C:192.168.111.203 时必须使用B作为源地址才能访问目标地址C,在这台服务器默认…...
反向代理模块jmh
1 概念 1.1 反向代理概念 反向代理是指以代理服务器来接收客户端的请求,然后将请求转发给内部网络上的服务器,将从服务器上得到的结果返回给客户端,此时代理服务器对外表现为一个反向代理服务器。 对于客户端来说,反向代理就相当…...
安卓(android)实现注册界面【Android移动开发基础案例教程(第2版)黑马程序员】
一、实验目的(如果代码有错漏,可查看源码) 1.掌握LinearLayout、RelativeLayout、FrameLayout等布局的综合使用。 2.掌握ImageView、TextView、EditText、CheckBox、Button、RadioGroup、RadioButton、ListView、RecyclerView等控件在项目中的…...
RubyFPV开源代码之系统简介
RubyFPV开源代码之系统简介 1. 源由2. 工程架构3. 特性介绍(软件)3.1 特性亮点3.2 数字优势3.3 使用功能 4. DEMO推荐(硬件)4.1 天空端4.2 地面端4.3 按键硬件Raspberry PiRadxa 3W/E/C 5. 软件设计6. 参考资料 1. 源由 RubyFPV以…...
解锁维特比算法:探寻复杂系统的最优解密码
引言 在复杂的技术世界中,维特比算法以其独特的魅力和广泛的应用,成为通信、自然语言处理、生物信息学等领域的关键技术。今天,让我们一同深入探索维特比算法的奥秘。 一、维特比算法的诞生背景 维特比算法由安德鲁・维特比在 1967 年提出…...
Unity游戏(Assault空对地打击)开发(2) 基础场景布置
目录 导入插件 文件夹整理 场景布置 山地场景 导入插件 打开【My Assets】(如果你刚进行上篇的操作,该窗口默认已经打开了)。 找到添加的几个插件,点击Download并Import x.x to...。 文件夹整理 我们的目录下多了两个文件夹&a…...
Office / WPS 公式、Mathtype 公式输入花体字、空心字
注:引文主要看注意事项。 1、Office / WPS 公式中字体转换 花体字 字体选择 “Eulid Math One” 空心字 字体选择 “Eulid Math Two” 使用空心字时,一般不用斜体,取消勾选 “斜体”。 2、Mathtype 公式输入花体字、空心字 2.1 直接输…...
代码随想录算法训练营第三十九天-动态规划-213. 打家劫舍 II
与上一题基本一样,只不过房间形成一个环,就需要在首尾考虑状况多一些这不是多一些状况的问题,是完全不知道如何选择的问题这种状况详细分析一下就是要分成三种情况 第一种:不考虑首元素,也不考虑尾元素,只考…...
自然语言处理-词嵌入 (Word Embeddings)
词嵌入(Word Embedding)是一种将单词或短语映射到高维向量空间的技术,使其能够以数学方式表示单词之间的关系。词嵌入能够捕捉语义信息,使得相似的词在向量空间中具有相近的表示。 📌 常见词嵌入方法 基于矩阵分解的方…...
Redis 数据备份与恢复
Redis 数据备份与恢复 引言 Redis 是一款高性能的键值对存储系统,广泛应用于缓存、消息队列、分布式锁等领域。为了保证数据的安全性和可靠性,定期对 Redis 数据进行备份与恢复是至关重要的。本文将详细介绍 Redis 数据备份与恢复的方法,帮助您更好地管理和维护 Redis 数据…...
【leetcode】T541 (两点反思)
解题反思 闷着头往,往往会写成一团浆糊,还推倒重来,谋划好全局思路再开始很重要。 熟悉C的工具库很重要,一开始看到反转就还想着用stack来着,后面突然想起来用reverse函数刚好可以用哇,这题也就迎刃而解了…...
《STL基础之vector、list、deque》
【vector、list、deque导读】vector、list、deque这三种序列式的容器,算是比较的基础容器,也是大家在日常开发中常用到的容器,因为底层用到的数据结构比较简单,笔者就将他们三者放到一起做下对比分析,介绍下基本用法&a…...
嵌入式系统|DMA和SPI
文章目录 DMA(直接内存访问)DMA底层原理1. 关键组件2. 工作机制3. DMA传输模式 SPI(串行外设接口)SPI的基本原理SPI连接示例 DMA与SPI的共同作用 DMA(直接内存访问) 类型:DMA是一种数据传输接口…...
LevelDB 源码阅读:写入键值的工程实现和优化细节
读、写键值是 KV 数据库中最重要的两个操作,LevelDB 中提供了一个 Put 接口,用于写入键值对。使用方法很简单: leveldb::Status status leveldb::DB::Open(options, "./db", &db); status db->Put(leveldb::WriteOptions…...
寒假刷题Day18
一、16. 最接近的三数之和 这一题有负数,没有单调性,不能“大了右指针左移,小了左指针右移,最后存值域求差绝对值”。 class Solution { public:int threeSumClosest(vector<int>& nums, int target) {ranges::sort(n…...
力扣219.存在重复元素每日一题(大年初一)
以一道简单题开启全新的一年 哈希表:我们可以使用 哈希表 来存储数组元素及其对应的索引。通过遍历数组,我们可以检查当前元素是否已经存在于哈希表中,并判断索引差是否满足条件。 具体步骤如下: 创建一个哈希表 map,…...
Midjourney中的强变化、弱变化、局部重绘的本质区别以及其有多逆天的功能
开篇 Midjourney中有3个图片“微调”,它们分别为: 强变化;弱变化;局部重绘; 在Discord里分别都是用命令唤出的,但如今随着AI技术的发达在类似AI可人一类的纯图形化界面中,我们发觉这样的逆天…...
Blazor-选择循环语句
今天我们来说说Blazor选择语句和循环语句。 下面我们以一个简单的例子来讲解相关的语法,我已经创建好了一个Student类,以此类来进行语法的运用 因为我们需要交互性所以我们将类创建在*.client目录下 if 我们做一个学生信息的显示,Gender为…...
根据每月流量和市场份额排名前20 的AI工具列表
ChatGPT:由Open AI研发,是一款对话式大型语言模型。它能够理解自然语言输入,生成连贯且符合逻辑的回复。可用于文本创作,如撰写文章、故事、诗歌;还能解答各种领域的知识问题,提供翻译、代码解释等服务&…...
关于安卓greendao打包时报错问题修复
背景 项目在使用greendao的时候,debug安装没有问题,一到打包签名就报了。 环境 win10 jdk17 gradle8 项目依赖情况 博主的greendao是一个独立的module项目,项目目前只适配了java,不支持Kotlin。然后被外部集成。greendao版本…...
前端面试笔试题目(一)
以下模拟了大厂前端面试流程,并给出了涵盖HTML、CSS、JavaScript等基础和进阶知识的前端笔试题目,以帮助你更好地准备面试。 面试流程模拟 1. 自我介绍(5 - 10分钟):面试官会请你进行简单的自我介绍,包括…...
网络工程师 (10)设备管理
前言 设备管理中的数据传输控制方式是确保设备与内存(或CPU)之间高效、准确地进行数据传送的关键。 一、程序直接控制方式 1.工作原理: 由CPU发出I/O指令,直接控制数据的传输过程。CPU需要不断查询外设的状态,以确定数…...
如何让一个用户具备创建审批流程的权限
最近碰到一个问题,两个sandbox,照理用户的权限应该是一样的,结果开发环境里面我可以左右的做各种管理工作,但是使用change set上传后,另一个环境的同一个用户,没有相对于的权限,权限不足。 当时…...
unity学习23:场景scene相关,场景信息,场景跳转
目录 1 默认场景和Assets里的场景 1.1 scene的作用 1.2 scene作为project的入口 1.3 默认场景 2 场景scene相关 2.1 创建scene 2.2 切换场景 2.3 build中的场景,在构建中包含的场景 (否则会认为是失效的Scene) 2.4 Scenes in Bui…...
【Java高并发】基于任务类型创建不同的线程池
文章目录 一. 按照任务类型对线程池进行分类1. IO密集型任务的线程数2. CPU密集型任务的线程数3. 混合型任务的线程数 二. 线程数越多越好吗三. Redis 单线程的高效性 使用线程池的好处主要有以下三点: 降低资源消耗:线程是稀缺资源,如果无限…...
全网首发,MacMiniA1347安装飞牛最新系统0.8.36,改造双盘位NAS,超详细.36,改造双盘位nas,超详细
全网首发,MacMiniA1347安装飞牛最新系统0.8.36,改造双盘位NAS,超详细 小伙伴们大家好呀,勤奋的凯尔森同学又双叒叕来啦,今天这一期也是有点特别,我们把MacMiniA1347安装飞牛最新系统0.8.36,并且…...
简要介绍C++中的 max 和 min 函数以及返回值
简要介绍C中的 max 和 min 函数 在C中,std::max 和 std::min 是标准库 <algorithm> 中提供的函数,用于比较两个或多个值并返回最大值或最小值。这些函数非常强大且灵活,支持多种数据类型(如整数、浮点数、字符串等ÿ…...
【基于SprintBoot+Mybatis+Mysql】电脑商城项目之用户注册
🧸安清h:个人主页 🎥个人专栏:【计算机网络】【Mybatis篇】 🚦作者简介:一个有趣爱睡觉的intp,期待和更多人分享自己所学知识的真诚大学生。 目录 🎯项目基本介绍 🚦项…...
记忆化搜索(5题)
是什么? 是一个带备忘录的递归 如何实现记忆化搜索 1.添加一个备忘录(建立一个可变参数和返回值的映射关系) 2.递归每次返回的时候把结果放到备忘录里 3.在每次进入递归的时候往备忘录里面看看。 目录 1.斐波那契数列 2.不同路径 3.最…...
强化学习笔记——4策略迭代、值迭代、TD算法
基于策略迭代的贝尔曼方程和基于值迭代的贝尔曼方程,关系还是不太理解 首先梳理一下: 通过贝尔曼方程将强化学习转化为值迭代和策略迭代两种问题 求解上述两种贝尔曼方程有三种方法:DP(有模型),MCÿ…...
nginx目录结构和配置文件
nginx目录结构 [rootlocalhost ~]# tree /usr/local/nginx /usr/local/nginx ├── client_body_temp # POST 大文件暂存目录 ├── conf # Nginx所有配置文件的目录 │ ├── fastcgi.conf # fastcgi相关参…...
Spring RESTful API 设计与实现
Spring RESTful API的设计与实现极大地提升了开发效率和系统可维护性,通过遵循RESTful设计原则,使得API结构清晰、行为一致,便于扩展和维护。它在构建微服务架构中扮演着核心角色,支持松耦合的通信,同时通过标准的HTTP协议和数据格式增强了系统的互操作性。结合Spring Sec…...
【玩转全栈】--创建一个自己的vue项目
目录 vue介绍 创建vue项目 vue页面介绍 element-plus组件库 启动项目 vue介绍 Vue.js 是一款轻量级、易于上手的前端 JavaScript 框架,旨在简化用户界面的开发。它采用了响应式数据绑定和组件化的设计理念,使得开发者可以通过声明式的方式轻松管理数据和…...
【Envi遥感图像处理】008:波段(批量)分离与波段合成
文章目录 一、波段分离提取1. 提取单个波段2. 批量提取单个波段二、波段合成相关阅读:【ArcGIS微课1000例】0058:波段合成(CompositeBands)工具的使用 一、波段分离提取 1. 提取单个波段...
数据结构-Stack和栈
1.栈 1.1什么是栈 栈是一种特殊的线性表,只允许在固定的一段进行插入和删除操作,进行插入和删除操作的一段称为栈顶,另一端称为栈底。 栈中的数据元素遵顼后进先出LIFO(Last In First Out)的原则,就像一…...
内容检索(2025.01.30)
随着创作数量的增加,博客文章所涉及的内容越来越庞杂,为了更为方便地阅读,后续更新发布的文章将陆续在此汇总并附上原文链接,感兴趣的小伙伴们可持续关注文章发布动态! 博客域名:http://my-signal.blog.cs…...
牛客周赛 Round 77
题目目录 C-小红走网格解题思路参考代码 D-隐匿社交网络解题思路参考代码 F-计树解题思路参考代码 C-小红走网格 解题思路 根据裴蜀定理:设a,b是不全为0的整数,对任意整数x,y,满足gcd(a,b&…...
c++面试:类定义为什么可以放到头文件中
这个问题是刚了解预编译的时候产生的疑惑。 声明是指向编译器告知某个变量、函数或类的存在及其类型,但并不分配实际的存储空间。声明的主要目的是让编译器知道如何解析程序中的符号引用。定义不仅告诉编译器实体的存在,还会为该实体分配存储空间&#…...
Oracle查看数据库表空间使用情况
Oracle RAC环境查看表空间使用情况 查询字段释义: NEED_ADDFILE,--是否需增加表空间文件 TABLESPACE_NAME,--表空间名称 TABLESPACE_FILE_COUNT, --表空间当前数据文件数量 NOW_FILEENABLE_BLOCKS,--表空间文件当前数据块数 NOW_FILEENABLE_BYTES_GB,--表空间文件当…...
Spring Boot 热部署实现指南
在开发 Spring Bot 项目时,热部署功能能够显著提升开发效率,让开发者无需频繁重启服务器就能看到代码修改后的效果。下面为大家详细介绍一种实现 Spring Boot 热部署的方法,同时也欢迎大家补充其他实现形式。 步骤一、开启 IDEA 自动编译功能…...
如何构建ObjC语言编译环境?构建无比简洁的clang编译ObjC环境?Windows搭建Swift语言编译环境?
如何构建ObjC语言编译环境? 除了在线ObjC编译器,本地环境Windows/Mac/Linux均可以搭建ObjC编译环境。 Mac自然不用多说,ObjC是亲儿子。(WSL Ubuntu 22.04) Ubuntu可以安装gobjc/gnustep和gnustep-devel构建编译环境。 sudo apt-get install gobjc gnus…...
C++——类和对象(下)
1.初始化列表 之前我们实现构造函数时,初始化成员变量主要使用函数体内赋值,构造函数初始化还有一种方式,就是初始化列表,初始化列表的使用方式是以一个冒号开始,接着是一个以逗号分隔的数据成员列表,每个…...
R 字符串:深入理解与高效应用
R 字符串:深入理解与高效应用 引言 在R语言中,字符串是数据处理和编程中不可或缺的一部分。无论是数据清洗、数据转换还是数据分析,字符串的处理都是基础技能。本文将深入探讨R语言中的字符串概念,包括其基本操作、常见函数以及高效应用方法。 字符串基本概念 字符串定…...
C#面试常考随笔7:什么是匿名⽅法?还有Lambda表达式?
匿名方法本质上是一种没有显式名称的方法,它可以作为参数传递给需要委托类型的方法,常用于事件处理、回调函数等场景,能够让代码更加简洁和紧凑。 使用场景 事件处理:在处理事件时,不需要为每个事件处理程序单独定义…...