Rust语言编程例子 第005题:数字排序

Rust语言编程题目:输入三个整数x,y,z,请把这三个数由小到大输出。

程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。基础练习,不要使用Vec。

知识点:运算符 let match

fn main() {
    let mut input_data = String::new();
    println!("请输入3个整数,中间使用空格隔开:");
    std::io::stdin().read_line(&mut input_data).expect("read line failed!");
    let input_vector: Vec<&str> = input_data.trim().split_whitespace().collect();

    // 输入格式错误
    if input_vector.len() != 3 {
        print!("请输入3个数字");
        return;
    }

    let mut x: i32;
    let mut y: i32;
    let mut z: i32;

    // 校验三个数据
    // 第一个
    if let Ok(data) = input_vector[0].parse::<i32>() {
        x = data;
    } else {
        println!("您输入的第一个数据不是整数!");
        return;
    }

    // 第二个
    if let Ok(data) = input_vector[1].parse::<i32>() {
        y = data;
    } else {
        println!("您输入的第二个数据不是整数!");
        return;
    }

    // 第三个
    if let Ok(data) = input_vector[2].parse::<i32>() {
        z = data;
    } else {
        println!("您输入的第三个数据不是整数!");
        return;
    }

    // 3个数分别比较
    // 如果x > y 则交换x和y的值
    if x > y {
        let t = x;
        x = y;
        y = t;
    }

    // 如果x > z 则交换x和z的值
    if x > z {
        let t = x;
        x = z;
        z = t;
    }

    // 如果x > z 则交换x和z的值
    if y > z {
        let t = y;
        y = z;
        z = t;
    }

    println!("从小到大排序: {}  {}  {}", x, y, z);
}

程序执行结果

请输入3个整数,中间使用空格隔开:
983 7 -20
从小到大排序: -20  7  983

Process finished with exit code 0

下一章:Rust语言编程例子 第006题:打印图案

题目:请使用*号输出英文字母C的图案,类似于电子手表屏幕上的C。请使用两种方式实现。程序分析:这个题目比较简单,可以先用'*'号在纸上写出字母C,再分行输出。第一种方式就是直接使用println打 ...