Menu
CoddyTech

复习:查找一个元素

本课属于 Coddy Rust 学习旅程的“逻辑与流程”单元。第 41 课,共 66 课。

challenge icon

挑战

简单

你会收到两个输入。第一个输入是用逗号分隔的数字列表(例如,10,20,30,40),第二个输入是要搜索的目标数字。将用逗号分隔的数字解析为一个向量,然后搜索目标数字。使用 .iter().position() 查找目标数字的索引,该方法会返回一个 Option<usize>。使用 match 处理这两种情况,并打印相应的消息。

要求:

  • 读取第一个输入(用逗号分隔的数字),并去除空白
  • 按逗号拆分输入,并将每部分解析为 i32,以创建一个向量
  • 读取第二个输入(目标数字),并去除空白
  • 将目标数字解析为 i32
  • 使用 .iter().position(|&x| x == target) 在向量中搜索目标数字
  • 使用 match 表达式处理 .position() 返回的 Option
  • 在 Some(index) 分支中,打印:Found at index [index]
  • 在 None 分支中,打印:Not found

输入:

  • 第一行:用逗号分隔的数字(例如,10,20,30,40)
  • 第二行:要搜索的目标数字(例如,30)

输出:

  • 如果找到目标数字:Found at index [index]
  • 如果没有找到目标数字:Not found

亲手试试

use std::io::{self, BufRead};

fn main() {
    let stdin = io::stdin();
    let mut lines = stdin.lock().lines();
    
    // 读取用逗号分隔的数字
    let numbers_input = lines.next().unwrap().unwrap().trim().to_string();
    
    // 读取目标数字
    let target_input = lines.next().unwrap().unwrap().trim().to_string();
    
    // 将用逗号分隔的数字解析为向量
    let numbers: Vec<i32> = numbers_input
        .split(',')
        .map(|s| s.trim().parse().unwrap())
        .collect();
    
    // 解析目标数字
    let target: i32 = target_input.parse().unwrap();
    
    // TODO: 在下方编写你的代码
    // 使用 .iter().position() 查找目标,并用 match 处理结果
    
}

逻辑与流程中的所有课

自己练习: Rust 在线编译器