目录

  • 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;
}