Rust语言编程例子 第002题:判断语句

Rust语言编程题目:企业发放的奖金根据利润提成。

  • 利润(I)低于或等于10万元时,奖金可提10%;
  • 利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;
  • 20万到40万之间时,高于20万元的部分,可提成5%;
  • 40万到60万之间时高于40万元的部分,可提成3%;
  • 60万到100万之间时,高于60万元的部分,可提成1.5%;
  • 高于100万元时,超过100万元的部分按1%提成。

从键盘输入当月利润I,求应发放奖金总数?

程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。

知识点:if条件判断,数据运算

// 输入数据
    let mut input_data = String::new();
    // 最后的利润
    let mut bonus: f64 = 0.0;

    println!("请输入您的利润:");
    // 接收输入数据
    std::io::stdin().read_line(&mut input_data).expect("read_line failed!");

    // 判断输入的数据是否符合要求
    match input_data.trim().parse::<i32>() {
        Ok(data) => {
            let bonus1: f64 = 100_000.0 * 0.1;
            let bonus2: f64 = bonus1 + 100_000.0 * 0.075;
            let bonus4: f64 = bonus2 + 100_000.0 * 0.05;
            let bonus6: f64 = bonus4 + 100_000.0 * 0.03;
            let bonus10: f64 = bonus6 + 400_000.0 * 0.015;

            // 分档计算
            if data <= 100_000 {
                bonus = f64::from(data) * 0.1;
            } else if data <= 200_000 {
                bonus = bonus1 + (f64::from(data) - 100_000.0) * 0.075;
            } else if data <= 400_000 {
                bonus = bonus2 + (f64::from(data) - 200_000.0) * 0.05;
            } else if data <= 600_000 {
                bonus = bonus4 + (f64::from(data) - 400_000.0) * 0.03;
            } else if data <= 1_000_000 {
                bonus = bonus6 + (f64::from(data) - 600_000.0) * 0.015;
            } else if data > 1_000_000 {
                bonus = bonus10 + (f64::from(data) - 1_000_000.0) * 0.01;
            }
            // 最后保留2位小数
            println!("应发奖金总数: bonus = {:.2} 元", bonus);
        }
        Err(_) => {
            println!("你输入的 {} 不是一个整数!", input_data.trim())
        }
    };

程序执行结果:

实验数据:34534005
输出结果:
请输入您的利润:
34534005
应发奖金总数: bonus = 366840.05 元

下一章:Rust语言编程例子 第003题:循环语句

Rust语言编程题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?程序分析:假设该数为 x。1、则:x + 100 = n2, x + 100 + 1 ...