赞
踩
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
6 2 4
第一行:输入三个数x、y、z,这三个数不一定有序,我们设A为当中(x,y,z中)最小的,C为最大的,B为剩下的那个(非最小非最大)。)
现在你手里有ABC三个数了
第二行:输入ABC三个字母(任意顺序),输出对应的ABC(就是上一行那三个数)
//感谢 Lucaster_ 的翻译
#include<iostream> using namespace std; int a,b,c,i,x,y,z,sum; char ch; int main() { cin>>x>>y>>z; sum=x+y+z; a=min(min(x,y),z); c=max(max(x,y),z); b=sum-a-c; for(i=1;i<=3;i++) { cin>>ch; if(ch=='A') cout<<a<<' '; if(ch=='B') cout<<b<<' '; if(ch=='C') cout<<c<<' '; } return 0; }
我们上一《难题》用了一个很难的方法—— max and min
a=min(min(x,y),z);
c=max(max(x,y),z);
我们看一下这两条代码,再分解以下
int aa,cc,a,c;
int x,y,z;
aa=min(x,y);
a=min(aa,z);
cc=max(x,y)
c=max(cc,z);
首先解释以下min
比如aa=min(x,y),意思就是aa=x和y中小的一个
若x=10,y=8,aa=min(x,y),则aa=y //8
反之,max就是取大的
若x=10,y=8,aa=max(x,y),则aa=x //10
然后我们把新的知识联系到老知识里边
aa=min(x,y);
就等于
if(x>y) aa=y;
else aa=x;
aa=max(x,y);
就等于
if(x>y) aa=x;
else aa=y;
而第三题的那段代码就不用我解释了吧?
刚刚讲述了max 和 min 的基本用法,而max 和 min可以用以下函数解释(新手可以忽略)
int max(int a, int b)
{
return (a > b ? a : b);
}
int min(int a, int b)
{
return (a < b ? a : b);
}
(据有些博主说,使用max函数首先需要有algorithm的头文件,可是我是用iostream也能通过编译???)
接着就是要讲一讲JYqwq博主评论的
“事实上C++11中max(max(a,b),c)可以直接写成max({a,b,c})”
即传入多个参数,必须要用{}包起来
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
cout << max({ 1, 2, 3, 4, 5 }) << endl; //判断1 2 3 4 5哪个大
return 0;
}
我想大家都应该知道1 2 3 4 5哪个大(6更大)
则再看看大佬的评论中 max(max(a,b),c)可以直接写成max({a,b,c})
前者是先判断a,b哪个大,大的再和c比较
而max({a,b,c}),则是直接判断a,b,c哪个大,结果相同
标switch的结构题
在一些程序编写中绝对少不了判断语句。
如下面这个用if的简单的判断结构:
#include<iostream> using namespace std; int main() { int sum; cin>>sum; if(sum==1) { cout << "关注" << endl; } else if (sum==2) { cout << "关注+收藏" << endl; } else { cout << "关注+收藏+点赞" << endl; } return 0; }
这种表达比较复杂(复杂?),我们还有一种更为简单的表达方式(简单?)
这个结构就是switch,仍然是大佬JYqwq
”另外是不是漏了switch语句(虽然不是特别通用)”
上代码还可以这样写
#include<iostream> using namespace std; int main() { int sum; cin >> sum; switch (sum) { case 1: cout << "关注" << endl; break; case 2: cout << "关注+收藏" << endl; break; default: cout << "关注+收藏+点赞" << endl; break; } return 0; }
在经过switch改进后,明显简洁很多,不过博主还是更喜欢if,毕竟switch没有if通用,但是这些基础还是要学会的
其中case表示if,default表示else,学会了if还是很好理解switch的(在{}中就是使用case关键字来判断)
在()中是需要判断的语句和变量(例如上面是判断sum变量的值);
case后面跟的必须是常量表达式(包括字符表达式)(格式如:case 1:语句;[break;]),表达式可以是C++任何的合法语句,但是其值只能是字符型常量或者整型常量,该常量表达式是用来判断()里面的表达式的值是否与该常量表达式的值相等(看不懂可以跳过)
每个分支case的常量表达式的值必须与某一值严格相等
若switch的某一分支的语句不止一句,则所要求的的多条语句也不用写成语句块的形式,只需在最后的语句后面加上break;即可表示在此case的执行语句结束
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
g-ncC12bgn-1714865823478)]
[外链图片转存中…(img-Gd43UqAr-1714865823478)]
[外链图片转存中…(img-MY8aXOuM-1714865823478)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。