哈喽大家好,我是iecne,本期为大家带来的是CPP/C++保姆级入门教程的第六期—— 分支结构,包教包会,快来看看吧!
此教程适合新手小白,因为语言会十分的通俗易懂,不会有很多的专业词汇出现,可以更好的掌握并且吸收,后续加上持之以恒的练习题目将会基本巩固
目录
一.分支结构是什么
人们在人生中需要做出许多选择,小到考虑晚上吃什么,大到决定高考志愿填报的学校。只有一次次选择后才能带来无限可能,我们要根据自己掌握的情况,做出最佳的选择。
程序的执行也不是一成不变的,往往会要求程序能够在不同的场合下有不同的动作。这时就需要在代码中使用条件语句来做出不同的选择
二.分支结构的用法
循序结构具体怎么做,新手小白们若没有看过
C++保姆级入门教程(3) if语句
可以点击链接学习学习
三.分支结构题目练习
以下就是一些对于掌握分支结构的题目
1.数的性质
题目描述
一些整数可能拥有以下的性质:
- 性质 1:是偶数;
- 性质 2:大于 44 且不大于 1212。
小 A 喜欢这两个性质同时成立的整数;Uim 喜欢这至少符合其中一种性质的整数;八尾勇喜欢刚好有符合其中一个性质的整数;正妹喜欢不符合这两个性质的整数。现在给出一个整数 xx,请问他们是否喜欢这个整数?
输入格式
输入一个整数 x(0\le x \le 1000)x(0≤x≤1000)
输出格式
输出这 44 个人是否喜欢这个数字,如果喜欢则输出 1
,否则输出 0
,用空格分隔。输出顺序为:小 A、Uim、八尾勇、正妹。
输入输出样例
输入
12
输出
1 1 0 0
(1)题目解析
先把所有人假设为不喜欢这个数,
然后根据每个人的喜好判断,
如果喜欢,
则值为11,否则为00,
最后输出。
ifif判断的根据:
性质 1:是偶数
性质 2:大于 4 且不大于 12
小A 喜欢这两个性质同时成立的数字;Uim 喜欢这至少符合其中一种性质的数字;八尾勇喜欢刚好有符合其中一个性质的数字;正妹喜欢不符合这两个性质的数字
(2)参考答案
#include <iostream>
using namespace std;
int a = 0, b = 0, c = 0, d = 0, n;
int main()
{
cin >> n;
if (n % 2 == 0 && n > 4 && n <= 12) a = 1;
if (n % 2 == 0 || n > 4 && n <= 12 || n % 2 == 0 && n > 4 && n <= 12) b = 1;
if (n % 2 == 0 && n <= 4 && n > 12 || n > 4 && n <= 12 && n % 2 == 1) c = 1;
if (n % 2 == 1 && n <= 4 || n % 2 == 1 && n > 12) d = 1;
printf("%d %d %d %d\n", a, b, c, d);//这里需要很多的空格,用printf更方便
//cout << a << " " << b << " " << c << " " << d;
return 0;
}
2.月份天数
题目描述
输入年份和月份,输出这一年的这一月有多少天。需要考虑闰年。
输入格式
输入两个正整数,分别表示年份 yy 和月数 mm,以空格隔开。
输出格式
输出一行一个正整数,表示这个月有多少天。
输入输出样例
输入 1926 8
输出 31
输入 2000 2
输出 29
(1)题目解析
这题具备一些常识就能过。
- 大月31天:1,3,5,7,8,10,12
- 小月30天:4,6,9,11
- 2月特殊: 平年28天,闰年29天
四年一润,百年不润,四百年再润
(小学内容)
但是对Cpp(c++ pp不许要按Shift)的新手小白来说会比较不友好,因为分支很多并且复杂
(2)参考答案
#include <iostream>
using namespace std;
int main()
{
int n, m; //long long
cin >> n >> m;
if (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12)
{
cout << "31" << endl;//如上文字 1 3 5 7 8 10 12 都是31天
return 0;
}
if (m == 4 || m == 6 || m == 9 || m == 11)
{
cout << "30" << endl;//如上文字 4 6 9 11都是30天
return 0;
}
if ((n % 400 == 0 || (n % 4 == 0 && n % 100 != 0)) && m == 2)
{
cout << "29" << endl;//如果是闰年那么输出29天
return 0;
}
else cout << "28"; //如果不是那么输出28天
return 0;
}
3.ABC
【题目描述】
三个整数分别为 A,B,CA,B,C。这三个数字不会按照这样的顺序给你,但它们始终满足条件:A < B < CA<B<C。为了看起来更加简洁明了,我们希望你可以按照给定的顺序重新排列它们。
【输入格式】
第一行包含三个正整数 A,B,CA,B,C,不一定是按这个顺序。这三个数字都小于或等于 100100。第二行包含三个大写字母 AA、BB 和 CC(它们之间没有空格)表示所需的顺序。
【输出格式】
在一行中输出 AA,BB 和 CC,用一个 (空格)隔开。
输入输出样例
输入
1 5 3 ABC
输出
1 3 5
输入 #2
6 4 2 CAB
输出 #2
6 2 4
(1)题目解析
第一行:输入三个数x、y、z,这三个数不一定有序,我们设A为当中(x,y,z中)最小的,C为最大的,B为剩下的那个(非最小非最大)。)
现在你手里有ABC三个数了
第二行:输入ABC三个字母(任意顺序),输出对应的ABC(就是上一行那三个数)
//感谢 Lucaster_ 的翻译
(2)参考答案
#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和min
我们上一《难题》用了一个很难的方法—— 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;
而第三题的那段代码就不用我解释了吧?
五.总结
本节课主要是讲解三道循序结构的题目,至此分支结构(if)思想博主已经分享完了,相信大家对这个逻辑有了一定的理解,大家可以自己动手敲敲代码,感受一下
包教包会,帅的人已然点赞收藏关注,而丑的人还在犹豫,被犹豫了,快三连吧!
系列文章目录
本期收录于博主的专栏——C++保姆级入门教程,适用于编程入门初学者,感兴趣的朋友们可以订阅,查看其它专栏。
C++保姆级入门教程(1) 变量 输出 输入
C++保姆级入门教程(2) 算术运算和赋值
C++保姆级入门教程(3) if语句
C++保姆级入门教程(4) 循环
C++保姆级入门教程(5) 顺序结构
C++保姆级入门教程(6) 分支结构
感谢每一个观看本篇文章的朋友,更多精彩敬请期待:iecne的博客_CSDN博客-C++保姆级入门教程领域博主
文章存在借鉴,如有侵权请联系修改删除!