🔥個人主頁:@草莓熊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和牛客網一些。如果文章對你有幫助的話,歡迎點贊收藏加關注,感謝大家的支持。