编辑代码

///输入三个整数x,y,z,请把这三个数由小到大输出。


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