当前位置: 首页>后端>正文

rust学习-3.0.1-if-else练习题

if else 练习题

  1. 判断一个数是正数、负数还是零:
    编写一个程序,接收一个整数作为输入,然后使用 if..else if..else 语句判断该数是正数、负数还是零,并输出相应的结果。
  2. 检查闰年:
    编写一个函数,接受年份作为参数,然后判断该年份是否为闰年。闰年的条件是:能被4整除但不能被100整除,或者能被400整除。
  3. 成绩等级:
    给定一个分数(0-100),使用 if..else if..else 语句来判断成绩等级:
    • A: 90-100
    • B: 80-89
    • C: 70-79
    • D: 60-69
    • F: <60
  4. 三数排序:
    给定三个整数,编写代码对它们进行排序并从小到大输出。
  5. 菜单选择:
    编写一个简单的菜单选择程序,用户可以输入1、2或3,然后程序会输出他们选择的是“选项一”、“选项二”或“选项三”。
  6. 温度转换器:
    编写一个程序,让用户输入温度值和一个选择(C或F),然后将其从摄氏度转换为华氏度或从华氏度转换为摄氏度。
  7. 奇偶判断:
    编写一个函数,接受一个整数作为参数,并判断该整数是奇数还是偶数。
  8. 最大数寻找:
    给定三个整数,编写代码找出其中的最大数。
  9. 年龄分组:
    根据输入的年龄,将人分为不同的年龄组:
    • 儿童:0-12岁
    • 青少年:13-19岁
    • 成年人:20-59岁
    • 老年人:60岁及以上
  10. 支付方式确认:
    编写一个程序,用户可以选择支付方式(现金、信用卡、转账),然后程序输出确认信息,例如“您选择了信用卡支付”。

习题答案

use std::io;
fn main() {
    let number: i32 = get_number_from_input("选择要查看的题目,从1到10:");
    match number {
        1 => practice_if_statement_01(),
        2 => practice_if_statement_02(),
        3 => practice_if_statement_03(),
        4 => practice_if_statement_04(),
        5 => practice_if_statement_05(),
        6 => practice_if_statement_06(),
        7 => practice_if_statement_07(),
        8 => practice_if_statement_08(),
        9 => practice_if_statement_09(),
        10 => practice_if_statement_10(),
        _ => println!("未知的题目"),
    }
}
/*
判断一个数是正数、负数还是零:
*/
fn practice_if_statement_01() {
    println!("1.判断一个数是正数、负数还是零");
    let number: i32 = get_number_from_input("请输入一个整数");
    if number == 0 {
        println!("零");
    } else if number > 0 {
        println!("正整数");
    } else {
        println!("负整数");
    }
}
/*检查闰年*/
fn practice_if_statement_02() {
    println!("2.判断是否为闰年");
    let number: i32 = get_number_from_input("请输入一个整数,作为年份");
    if number % 4 == 0 && number % 100 != 0 {
        println!("是闰年");
    } else if number % 400 == 0 {
        println!("是闰年");
    } else {
        println!("不是闰年");
    }
}
/* 成绩等级*/
fn practice_if_statement_03() {
    println!("3.成绩等级");
    let number: i32 = get_number_from_input("请输入一个整数,作为成绩");
    if number < 60 {
        println!("F");
    } else if number < 70 {
        println!("D");
    } else if number < 80 {
        println!("C");
    } else if number < 90 {
        println!("B");
    } else if number <= 100 {
        println!("A");
    } else {
        println!("非法的成绩");
    }
}
/*
三数排序
*/
fn practice_if_statement_04() {
    println!("4.三数排序");
    let number1: i32 = get_number_from_input("请依次输入3个整数,第1个");
    let number2: i32 = get_number_from_input("请依次输入3个整数,第2个");
    let number3: i32 = get_number_from_input("请依次输入3个整数,第3个");
    let mut min = number1;
    if number2 < min {
        min = number2;
    }
    if number3 < min {
        min = number3;
    }
    let mut max = number1;
    if number2 > max {
        max = number2;
    }
    if number3 > max {
        max = number3;
    }
    let mut mid = number1;
    if mid == min || mid == max {
        mid = number2;
    }
    if mid == min || mid == max {
        mid = number3;
    }
    println!("{} <= {} <= {}", min, mid, max);
}
/*
菜单选择
*/
fn practice_if_statement_05() {
    println!("5.菜单选择");
    let number: i32 = get_number_from_input("请输入1个整数,范围1,2,3");
    if number == 1 {
        println!("选项一");
    } else if number == 2 {
        println!("选项二");
    } else if number == 3 {
        println!("选项三");
    } else {
        println!("未知的选项");
    }
}
/*
    温度转换器
*/
fn practice_if_statement_06() {
    println!("6.温度转换器");
    let input: String = get_input_str("请输入1个数值,然后以C或者F结尾,代表摄氏和华氏温度");
    let trimed = input.trim();

    let sign = &trimed[trimed.len() - 1..];
    let number = &trimed[..trimed.len() - 1]
        .trim()
        .parse::<f64>()
        .expect("无法将输入解析为数字");
    if sign == "F" {
        //°C = (°F - 32) × 5/9
        println!("C 温度为 {}", (number - 32.0) * 5.0 / 9.0);
    } else if sign == "C" {
        //°F = °C × 9/5 + 32
        println!("F 温度为 {}", number * 9.0 / 5.0 + 32.0);
    } else {
        println!("未知的温度格式");
    }
}
/*
奇偶判断
*/
fn practice_if_statement_07() {
    println!("7.奇偶判断");
    let number: i32 = get_number_from_input("请输入1个整数");
    if number % 2 == 0 {
        println!("偶数");
    } else {
        println!("奇数");
    }
}
/*
    最大数寻找
*/
fn practice_if_statement_08() {
    println!("8.最大数寻找");
    let number1: i32 = get_number_from_input("依次输入3个整数,第1个");
    let number2: i32 = get_number_from_input("依次输入3个整数,第2个");
    let number3: i32 = get_number_from_input("依次输入3个整数,第3个");

    let mut max = number1;
    if max < number2 {
        max = number2;
    }
    if max < number3 {
        max = number3;
    }
    println!("最大数 {}", max);
}
/*
年龄分组
*/
fn practice_if_statement_09() {
    println!("9.年龄分组");
    let age: i32 = get_number_from_input("输入1个整数,作为年龄");
    if age >= 0 && age <= 12 {
        println!("儿童");
    } else if age <= 19 {
        println!("青年");
    } else if age <= 59 {
        println!("成年");
    } else if age < 0 {
        println!("不合理的年龄");
    } else {
        println!("老年");
    }
}
/*
支付方式确认
*/
fn practice_if_statement_10() {
    println!("10.支付方式确认");
    println!("1.现金");
    println!("2.信用卡");
    println!("3.转账");
    let number = get_number_from_input("请输入数字,选择你的支付方式");
    if number == 1 {
        println!("使用现金支付");
    } else if number == 2 {
        println!("使用信用卡支付");
    } else if number == 3 {
        println!("使用转账支付");
    } else {
        println!("未知的支付方式");
    }
}

fn get_number_from_input(tips: &str) -> i32 {
    get_input_int32(tips).unwrap_or_else(|| {
        println!("输入的不是整数");
        std::process::exit(1);
    })
}

fn get_input_int32(tips: &str) -> Option<i32> {
    let input = get_input_str(tips);
    input.trim().parse().ok()
}

fn get_input_str(tips: &str) -> String {
    println!("{}", tips);
    let mut input = String::new();
    io::stdin().read_line(&mut input).expect("读取失败");
    input
}


https://www.xamrdz.com/backend/3np1941216.html

相关文章: