w3resource

Rust Array Mapping Guide

Rust Arrays: Exercise-7 with Solution

Write a Rust program to create an array of integers with size 5 and initialize it with random values. Map each element of the array to its square and print the resulting array.

Sample Solution:

Rust Code:

use rand::Rng; // Import the rand crate to generate random numbers

fn main() {
    // Define an array with a size of 5 and initialize it with random values
    let mut arr: [i32; 5] = [0; 5]; // Declare an array of type i32 (integer) with a size of 5 and initialize it with zeros
    let mut rng = rand::thread_rng(); // Initialize the random number generator

    // Generate random values and fill the array
    for i in 0..5 { // Iterate over each index of the array
        arr[i] = rng.gen_range(1..101); // Generate a random integer between 1 and 100 and assign it to the current index
    }

    // Map each element of the array to its square
    let squared_array: Vec = arr.iter() // Convert the array into an iterator
        .map(|&x| x * x) // Use the map method to square each element of the iterator
        .collect(); // Collect the squared elements into a new vector

    // Print the resulting array with each element squared
    println!("Squared Array: {:?}", squared_array); // Print the resulting vector using debug formatting
}

Output:

Squared Array: [4489, 5476, 361, 3600, 5184]

Explanation:

Here is a brief explanation of the above Rust code:

  • use rand::Rng;: This line imports the rand::Rng trait from the "rand" crate, which provides functions for generating random numbers.
  • fn main() {: This line defines the main function, which is the entry point of the Rust program.
  • let mut arr: [i32; 5] = [0; 5];: This line declares an array named 'arr' of type 'i32' (integer) with a size of 5 and initializes it with zeros.
  • let mut rng = rand::thread_rng();: This line initializes the random number generator by creating a thread-local generator.
  • for i in 0..5 { ... }: This line starts a for loop that iterates over each index of the array arr.
  • arr[i] = rng.gen_range(1..101);: This line generates a random integer between 1 and 100 using the "gen_range()" method of the random number generator 'rng', and assigns it to the current index 'i' of the array 'arr'.
  • let squared_array: Vec = arr.iter() ...: This line maps each element of the array arr to its square using the "map()" method on an iterator over the array elements. The "map()" method applies the specified closure to each element of the iterator.println!("Squared Array: {:?}", squared_array);: This line prints the resulting array with each element squared to the console using debug formatting.

Rust Code Editor:

Previous: Rust Array Filtering Guide.
Next: Rust Array Reversal Guide.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Become a Patron!

Follow us on Facebook and Twitter for latest update.

It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.

https://w3resource.com/rust/collections_and_data_structures/rust-arrays-exercise-7.php