Các thao tác phổ biến với mảng
Thuộc phần Kiến thức nền tảng trong hành trình Rust của Coddy. Bài học 68 trên 75.
Dưới đây là một số thao tác mảng thường gặp:
- Tìm tổng của tất cả phần tử trong một mảng:
let numbers = [1, 2, 3, 4, 5];
let mut sum = 0;
for number in &numbers {
sum += number;
}
println!("Sum: {}", sum);- Tìm giá trị trung bình của các phần tử trong một mảng:
let numbers = [1, 2, 3, 4, 5];
let mut sum = 0;
for number in &numbers {
sum += number;
}
let average = sum as f64 / numbers.len() as f64;
println!("Average: {}", average);- Tìm phần tử lớn nhất trong một mảng:
let numbers = [1, 5, 2, 9, 3];
let mut max = numbers[0];
for &number in &numbers[1..] {
if number > max {
max = number;
}
}
println!("Max: {}", max);- Tìm phần tử nhỏ nhất trong một mảng:
let numbers = [1, 5, 2, 9, 3];
let mut min = numbers[0];
for &number in &numbers[1..] {
if number < min {
min = number;
}
}
println!("Min: {}", min);Thử thách
DễTạo một hàm tên là calculate_stats nhận đầu vào là một mảng gồm 8 số nguyên và thực hiện các thao tác sau:
- Tính tổng tất cả phần tử trong mảng.
- Tính giá trị trung bình của các phần tử trong mảng.
- Tìm phần tử lớn nhất trong mảng.
- Tìm phần tử nhỏ nhất trong mảng.
Hàm cần trả về một mảng gồm các giá trị f64 chứa tổng, giá trị trung bình, giá trị lớn nhất và giá trị nhỏ nhất theo thứ tự đó.
Tự làm thử
use std::io;
use std::convert::TryInto;
fn calculate_stats(arr: [i32; 8]) -> [f64; 4] {
// Viết code của bạn ở đây
}
fn main() {
let mut input_str_arr = String::new();
io::stdin().read_line(&mut input_str_arr).unwrap();
let numbers: [i32; 8] = input_str_arr.split(',').map(|s| s.parse::<i32>().unwrap()).collect::<Vec<i32>>().try_into().unwrap();
let stats = calculate_stats(numbers);
println!("Sum: {}", stats[0]);
println!("Average: {}", stats[1]);
println!("Maximum: {}", stats[2]);
println!("Minimum: {}", stats[3]);
}Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Kiến thức nền tảng
5Các toán tử phần 2
Các toán tử logic phần 1Các toán tử logic phần 2Ôn tập: logic đơn giảnCác toán tử logic phần 311Hàm
Khai báo hàmTham số và đối sốGiá trị trả vềNhiều giá trị trả vềÔn tập: hàm SigmaÔn tập: hàm kiểm tra tính hợp lệ14Duyệt qua mảng
Hướng dẫn về rangeVòng lặp for nâng caoMượn trong vòng lặpCác thao tác phổ biến với mảng3Biến phần 2
Khai báo kiểu dữ liệuQuy ước đặt tênSuy luận kiểu dữ liệuÔn tập: Khởi tạo biếnÉp kiểu dữ liệu9Vòng lặp
Vòng lặp for qua chuỗiVòng lặp whileBreakContinueVòng lặp lồng nhauNhãn vòng lặpVòng lặp vô hạnÔn tập: Đầu vào động12Kiến thức cơ bản về mảng
Khai báo mảngMảng làm tham sốTruy cập phần tửChỉnh sửa mảngÔn tập: In mảng đẹp mắtTự luyện tập: Trình biên dịch Rust online