目录
- 1.6 嵌套if
- B2036 输出绝对值
- B2035 判断数正负
- P5681 [CSP-J2019 江西] 面积
- 课后练习
- 商场优惠活动
- 最大的数
- P5715 【深基3.例8】三位数排序
1.6 嵌套if
if 是可以相互嵌套的,并且嵌套的结果相当于同时满足外层 if 和内层 if 的条件
if(flag) {
if(flag) {
if(flag) { }
}
if(flag) { }
}
if(flag) {
if(flag) {
if(flag) { }
else{ }
}
if(flag) { }
else{ }
}
#include <iostream>
using namespace std;
int main() {
bool f1=1, f2=0;
if(f1) {
if(!f2) {
cout<<"1. 勇敢牛牛,不怕困难";
} else {
cout<<"2. 勇敢牛牛,不怕困难";
}
} else {
if(!f2) {
cout<<"3. 勇敢牛牛,不怕困难";
} else {
cout<<"4. 勇敢牛牛,不怕困难";
}
}
return 0;
}
// 输出结果:1. 勇敢牛牛,不怕困难
B2036 输出绝对值
题目描述
输入一个浮点数 \(n\),输出这个浮点数的绝对值。
输入格式: 输入一个浮点数 \(n\),其绝对值不超过 \(10000\)。
输出格式: 输出 \(n\) 的绝对值,保留到小数点后两位。
样例输入 #1 -3.14
样例输出 #1 3.14
#include <iostream>
#include <iomanip> // setprecision
#include <cmath> // abs
using namespace std;
int main() {
double n; cin>>n;
// fixed 定位小数点
// setprecision(x) 设置有效位
// abs(x) 取绝对值
// cout<<fixed<<setprecision(2)<<abs(n);
if( n < 0 ) {
n = -n;
}
cout<<fixed<<setprecision(2)<<n;
return 0;
}
B2035 判断数正负
题目描述
给定一个整数 \(N\),判断其正负。
- 如果 \(N>0\), 输出
positive
; - 如果 \(N=0\), 输出
zero
; - 如果 \(N<0\), 输出
negative
。
输入格式: 一个整数 \(N(-10^9 \le N \le 10^9)\)。
输出格式: 如题,输出一个字符串。
样例输入 #1 95
样例输出 #1 positive
#include <iostream>
using namespace std;
int main() {
/* int n; cin>>n;
if(n>0) cout<<"positive";
if(n==0) cout<<"zero";
if(n<0) cout<<"negative";
*/
/* int n; cin>>n;
if(n>0) {
cout<<"positive";
} else if(n==0) {
cout<<"zero";
} else {
cout<<"negative";
}
*/
int n; cin>>n;
if(n > 0) {
cout<<"positive";
} else { // n<=0
if(n < 0) {
cout<<"negative";
} else { // n==0
cout<<"zero";
}
}
return 0;
}
P5681 [CSP-J2019 江西] 面积
题目描述
Alice 有一个边长为 \(a\) 的正方形,Bob 有一个长宽分别为 \(b,c\)
输入格式: 仅一行三个正整数 \(a,b,c\)
输出格式: 输出仅一行一个字符串,若正方形面积大则输出 Alice
,否则输出 Bob
。
样例输入 #1 5 4 6
样例输出 #1 Alice
样例输入 #1 7 5 10
样例输出 #1 Bob
【数据范围】
对于 \(30\%\) 的数据,\(1 \le a,b,c \le 100\),\(b=c\);
对于 \(80\%\) 的数据,\(1\le a,b,c \le 10^4\);
对于 \(100\%\) 的数据,\(1\le a,b,c \le 10^9\)。
【样例 \(1\) 解释】 正方形面积为 \(25\),矩形面积为 \(24\)。
【样例 \(2\) 解释】 正方形面积为 \(49\),矩形面积为 \(50\)。
#include <iostream>
using namespace std;
int main() {
long long a,b,c;
cin>>a>>b>>c;
if(a*a > b*c) {
cout<<"Alice";
} else {
cout<<"Bob";
}
return 0;
}
课后练习
商场优惠活动
题目描述
某商场优惠活动规定某商品一次购买5件及以上,10件以下打9折;一次购买10件及以上打八折。
设计程序根据单价和客户的购买量计算总价。
输入格式: 两个整数,表示商品单价和购买量
输出格式: 一个实数,表示客户需要支付的金额
/*分析:设
price 表示商品单价,
count 表示购买商品的数量,
discount 表示折扣,
money 表示客户需要支付的金额。 */
#include<iostream>
using namespace std;
int main() {
double price, count, discount, money;
cin>>price>>count;
if(count<5) discount=1; //也可以用三个if
else if(count<10) discount = 0.9;
else discount=0.8;
money = price * count *discount;
cout<<money;
return 0;
}
最大的数
题目描述
输入三个整数,输出其中最大的数。
输入样例: 1 2 3
输出样例: 3
#include<iostream>
using namespace std;
int main(){
int a,b,c; cin>>a>>b>>c;
int tmax=a; //假设 a就是最大值
if(tmax < b){ //如果max比b小,那么b就是最大值,将b的值赋值给max
tmax = b;
}
if(tmax < c){ //如果max比c小,那么c就是最大值,将c的值赋值给max
tmax = c;
}
cout<<tmax;
return 0;
}
P5715 【深基3.例8】三位数排序
给出三个整数 \(a,b,c(0\le a,b,c \le 100)\),要求把这三位整数从小到大排序。
输入格式: 输入三个整数 \(a,b,c\),以空格隔开。
输出格式: 输出一行,三个整数,表示从小到大排序后的结果。
样例输入: 1 14 5
样例输出: 1 5 14
#include<iostream>
using namespace std;
int main(){
int a,b,c; cin>>a>>b>>c;
if(a > b){
int t = a;
a = b;
b = t; //交换a,b
}
if(a > c){
int t=a;
a = c;
c = t; //交换a,c
}
if(b > c){
int t=b;
b = c;
c = t; //交换b,c
}
cout<<a<<" "<<b<<" "<<c;
return 0;
}