信息学奥赛一本通 2053:【例3.3】三个数
生活随笔
收集整理的這篇文章主要介紹了
信息学奥赛一本通 2053:【例3.3】三个数
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
【題目鏈接】
ybt 2053:【例3.3】三個(gè)數(shù)
【題目考點(diǎn)】
1. if語(yǔ)句嵌套
2. if…else if語(yǔ)句
【解題思路】
if語(yǔ)句嵌套
如果a>=b,那么再判斷b,c的大小:
- 如果b>=c,那么a>=b>=c。
- 如果c > b,那么判斷a,c的大小:
- 如果a更大,那么a>=c>=b
- 否則c>=a>=b。
如果b > a,那么判斷a,c的大小:
- 如果a >= c,那么b>=a>=c。
- 如果c > a,那么判斷b,c的大小:
- 如果b更大,那么b>=c>=a
- 否則,c>=b>=a
if…else if語(yǔ)句配合邏輯表達(dá)式
如果a>=b>=c,那么其邏輯表達(dá)式為:a >= b && b >= c
如果a>=c>=b,那么其邏輯表達(dá)式為:a >= c && c >= b
如果b>=a>=c,那么其邏輯表達(dá)式為:b >= a && a >= c
如果b>=c>=a,那么其邏輯表達(dá)式為:b >= c && c >= a
如果c>=a>=b,那么其邏輯表達(dá)式為:c >= a && a >= b
如果c>=b>=a,那么其邏輯表達(dá)式為:c >= b && b >= a
以上即為a,b,c所有排序?qū)?yīng)的邏輯表達(dá)式,用if…else if語(yǔ)句列舉所有情況,針對(duì)不同情況做輸出。
降序排序
可以將這3個(gè)數(shù)字輸入數(shù)組,做降序排序,而后輸出。本題本意只是考察if語(yǔ)句,并非考察排序。對(duì)3個(gè)數(shù)字就用排序算法,有些殺雞用牛刀了,因而這里不提供排序相關(guān)方法。如果想練習(xí)排序,請(qǐng)自行搜索排序相關(guān)的問(wèn)題。
【題解代碼】
解法1:if語(yǔ)句嵌套
#include<bits/stdc++.h> using namespace std; int main() {int a, b, c;cin >> a >> b >> c;if(a >= b){if(b >= c)cout << a << ' ' << b << ' ' << c << endl;else{if(a >= c)cout << a << ' ' << c << ' ' << b << endl;else //a < ccout << c << ' ' << a << ' ' << b << endl;}}else//a < b{if(a >= c)cout << b << ' ' << a << ' ' << c << endl;else//a < c{if(b >= c)cout << b << ' ' << c << ' ' << a << endl;else//b < ccout << c << ' ' << b << ' ' << a << endl;}}return 0; }解法2:if…else if語(yǔ)句
#include<bits/stdc++.h> using namespace std; int main() {int a, b, c;cin >> a >> b >> c;if(a >= b && b >= c)cout << a << ' ' << b << ' ' << c << endl;else if(a >= c && c >= b)cout << a << ' ' << c << ' ' << b << endl;else if(b >= a && a >= c)cout << b << ' ' << a << ' ' << c << endl;else if(b >= c && c >= a)cout << a << ' ' << c << ' ' << b << endl;else if(c >= a && a >= b)cout << c << ' ' << a << ' ' << b << endl;else if(c >= b && b >= a)cout << c << ' ' << b << ' ' << a << endl;return 0; }總結(jié)
以上是生活随笔為你收集整理的信息学奥赛一本通 2053:【例3.3】三个数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 信息学奥赛一本通(1255:迷宫问题)
- 下一篇: 信息学奥赛一本通(1238:一元三次方程