🔥个人主页:@草莓熊Lotso
🎬作者简介:C++研发方向学习者
📖个人专栏: 《C语言》 《数据结构与算法》《C语言刷题集》《Leetcode刷题指南》
⭐️人生格言:生活是默默的坚持,毅力是永久的享受。
前言:在上篇博客中,我们学习了分支结构题单中的前半部分题,在这篇博客中博主将会继续分享分支结构题单。还是提醒一下,大家最好是有一定的C++的基础再看,这样效果比较好。那么废话不多说,我们来看看这次选择的题目吧。
目录
1.三位数排序
2.月份天数
3.不高兴的津津
4.买铅笔
5.三角形分类
6.小玉家的电费
1.三位数排序
题目链接:P5715 【深基3.例8】三位数排序 - 洛谷
题目描述:
输入输出样例:
代码演示:
#include<bits/stdc++.h>
using namespace std;
const int N=105;
int a[N];
int main()
{for(int i=0;i<3;i++){cin>>a[i];}sort(a,a+3);for(int i=0;i<3;i++){cout<<a[i]<<' ';}return 0;
}
题目解析:
- 利用数组,输入3个数,再用sort函数直接排序,sort函数默认的就是升序排序。注意一个给开始的坐标,一个要给结束坐标的后一位。
2.月份天数
题目链接:P5716 【深基3.例9】月份天数 - 洛谷
题目描述:
输入输出样例:
代码演示:
#include<bits/stdc++.h>
using namespace std;int get_days(int y, int m)
{int day[]={NULL,31,28,31,30,31,30,31,31,30,31,30,31};int days=day[m];if(m==2&&((y%4==0&&y%100!=0)||y%400==0)) days+=1;return days;
}
int main()
{int y,m; cin>>y>>m;int d=get_days(y,m);cout<<d;return 0;
}
题目解析:
- 这题很简单,自定义一个函数,让数组下标对应月份,数组元素设置好每个月多少天。
- 值得注意的是闰年的2月份有29天,需要特别判定一下,最后直接返回对应月份的天数并输出就行了
3.不高兴的津津
题目链接:P1085 [NOIP 2004 普及组] 不高兴的津津 - 洛谷
题目描述:
输入输出样例:
代码演示:
#include<bits/stdc++.h>
using namespace std;int main(){int max=8,maxi=0;for(int i=1;i<=7;i++){int t1,t2;cin>>t1>>t2;if(max<t1+t2){max=t1+t2;maxi=i;}}cout<<maxi;return 0;
}
题目解析:
- 根据题目要求在输入的同时判断符合条件的数据并记录下最大值,最大值坐标,最后直接输出最大值坐标就可以了
4.买铅笔
题目链接:P1909 [NOIP 2016 普及组] 买铅笔 - 洛谷
题目描述:
输入输出样例:
代码演示:
#include<bits/stdc++.h>
using namespace std;int main()
{int n, a1, b1, a2, b2, a3, b3;cin >> n >> a1 >> b1 >> a2 >> b2 >> a3 >> b3;int a = ceil(1.0 * n / a1) * b1;int b = ceil(1.0 * n / a2) * b2;int c = ceil(1.0 * n / a3) * b3;cout << min({a, b, c});return 0;
}
题目解析:
- 分别记录下3中方法的计算式,输入值最后利用min函数判断出三种方案的最小值,直接输出就可以了
5.三角形分类
题目链接:P5717 【深基3.习8】三角形分类 - 洛谷
题目描述:
输入输出样例:
代码演示:
#include<bits/stdc++.h>
using namespace std;
int a[4],b[4];int main(){for(int i=1; i<=3; i++) cin>>a[i];sort(a+1,a+3+1);for(int i=1; i<=3; i++) b[i]=a[i]*a[i];if(a[1]+a[2]<=a[3]){cout<<"Not triangle";return 0;}if(b[1]+b[2]==b[3]) cout<<"Right triangle\n";else if(b[1]+b[2]<b[3]) cout<<"Obtuse triangle\n";else cout<<"Acute triangle\n";if(a[1]==a[2] || a[2]==a[3] || a[3]==a[1]) cout<<"Isosceles triangle\n";if(a[1]==a[2] && a[2]==a[3]) cout<<"Equilateral triangle";return 0;
}
题目解析:
- 先利用sort函数给输入的数组元素排序,再根据三角形条件来判断,注意这题先判断是什么角三角形,再判断是等腰还是等边
6.小玉家的电费
题目链接:P1422 小玉家的电费 - 洛谷
题目描述:
输入输出样例:
代码演示:
#include<bits/stdc++.h>
using namespace std;int main()
{int c;cin>>c;double ans=0;if(c<=150) ans=c*0.4463;if(c>150&&c<=400) ans=150*0.4463+(c-150)*0.4663;if(c>=401) ans=150*0.4463+250*0.4663+(c-400)*0.5663;cout<<fixed<<setprecision(1)<<ans;return 0;
}
题目解析:
- 根据题目条件,三种档位计算出最终结果并输出就可以了,没有啥很难的地方,操作起来很简单的
往期回顾:
【洛谷题单】--顺序结构(一)
【洛谷题单】--顺序结构(二)
【洛谷题单】--分支结构(一)
结语:本篇文章就到此结束了,分支结构题单中的题目都不会很难,刚从C转到C++的朋友们也可以很快上手。这里依旧是提醒一下,大家如果是想打竞赛的话,洛谷这个软件我还是比较推荐的但是针对面试和其它类型题目会更推荐LeetCode和牛客网一些。如果文章对你有帮助的话,欢迎点赞收藏加关注,感谢大家的支持。