《算法笔记》2.3小节——C/C++快速入门->选择结构
问题 A: 例题4-1 一元二次方程求根
题目
题目描述
求一元二次方程 \(ax^2+bx+c=0\)
的根,三个系数a
,b
,c
由键盘输入,且a
不能为
0,但不保证 \(b^2-4ac>0\)。
程序中所涉及的变量均为double
类型。
输入
以空格分隔的一元二次方程的三个系数,双精度double
类型
输出
分行输出两个根如下(注意末尾的换行):
r1=第一个根
r2=第二个根
结果输出时,宽度占7位,其中小数部分2位。
如果方程无实根,输出一行如下信息(注意末尾的换行):
No real roots!
样例输入
1 |
|
样例输出
1 |
|
题解
思路
本题需要一个判断结构即可,我使用的是条件运算符,当然if-else
也是可以的。
代码
1 |
|
问题 B: 例题4-2 比较交换实数值
题目
题目描述
从键盘输入 2 个实数,按照代数值由小到大的顺序输出这两个数。
输入
用空格分隔的两个实数。
输出
从小到大输出这两个实数,中间以空格来分隔,小数在前,大数在后。
小数点后保留 2 位小数。
末尾输出换行符。
样例输入
1 |
|
样例输出
1 |
|
题解
思路
也是条件判断。因为每次只输出一个,所以用两个就好,一小一大。
代码
1 |
|
问题 C: 例题4-3 比较交换3个实数值,并按序输出
题目
题目描述
从键盘输入 3
个实数a
,b
,c
,通过比较交换,将最小值存储在变量a
中,最大值存储在变量
c
中,中间值存储在变量b
中,并按照从小到大的顺序输出这三个数a
,b
,c
。
末尾输出换行。
输入
输入以空格分隔的三个实数
输出
按照从小到大的顺序输出这三个实数,中间以空格分隔,最小值在前,最大值在后。小数点后保留 2 位小数。
注意末尾的换行。
样例输入
1 |
|
样例输出
1 |
|
题解
思路
用几个if-else
语句即可,不需要考虑别的,越简单越好。
代码
1 |
|
问题 D: 习题4-4 三个整数求最大值
题目
题目描述
有 3
个整数a
,b
,c
,由键盘输入,输出其中最大的数。
输入
以空格分割的三个整数。
输出
三个数中的最大值,末尾换行。
样例输入
1 |
|
样例输出
1 |
|
题解
思路
没什么好说的,可以使用两个三目运算符啦。
代码
1 |
|
《算法笔记》2.3小节——C/C++快速入门->选择结构
https://excelius.xyz/《算法笔记》2-3小节——c-c-快速入门-选择结构/