• Rust摄氏温度与华氏温度转换


    首先明确摄氏温度与华氏温度的转换规则

    华氏度=摄氏度*1.8+32

    摄氏度=(华氏度-32)/1.8

    然后就可以开始编码,首先要引入标准库中的io模块,因为我们要让用户输入一个温度,
    当用户输入后,我们潜规则默认后缀带C为摄氏度,带F为华氏度
    以下为编程注意点:
      一、stdin().read_line()会带入回车符,先用trim()去掉。
      二、用户输入可能不会区分大小写,先to_uppercase()转为大写,再去判断。
      三、截取掉最后一位最好不用字符串索引去处理,采用chars()方法更优。
      四、chars.next_back()是按码位进行迭代的。
      五、最后温度转换的判断用了if和match两种写法分别实现,看起来还是match更加简洁易读。
    完整代码如下,期望大家批评指正。

    use std::io;
    fn main() {
        println!("请输入温度(以C或者F结尾):");
        let mut s = String::new();
        match io::stdin().read_line(&mut s) {
            Ok(_) => s = s.trim().to_uppercase().to_string(),
            Err(e) => println!("error:{}", e),
        }
    
        let mut chars = s.chars();
        chars.next_back();
        let temperature: f64 = match chars.as_str().parse() {
            Ok(num) => num,
            _ => {
                println!("请输入数字");
                return;
            }
        };
    
        if s.chars().last() == Some('C') {
            println!("您输入的是摄氏度:{}", temperature);
            println!("转换为华氏度是:{}", temperature* 1.8 + 32.0);
        } else if s.chars().last() == Some('F') {
            println!("您输入的是华氏度:{}", temperature);
            println!("转换为华氏度是:{}", (temperature- 32.0) / 1.8);
        } else {
            println!("请以C或者F结尾")
        }
    
        match s.chars().last() {
            Some('C') => {
                println!("您输入的是摄氏度:{}", temperature);
                println!("转换为华氏度是:{}", temperature* 1.8 + 32.0);
            }
            Some('F') => {
                println!("您输入的是华氏度:{}", temperature);
                println!("转换为华氏度是:{}", (temperature- 32.0) / 1.8);
            }
            _ => println!("请以C或者F结尾"),
        }
    }
    
  • 相关阅读:
    用指针写线段树(维护乘法)
    费用流——网络流板子
    最小割板子题——[USACO5.4]奶牛的电信
    数论——置换
    NOIP2012 借教室
    POJ1990 moofest
    POJ2352 star
    POJ2299 Ultra-QuickSort
    CF498D Traffic Jams in the land
    POJ2828 Buy Ticket
  • 原文地址:https://www.cnblogs.com/qisong/p/14471243.html
Copyright © 2020-2023  润新知