Rust Program: Cube Root of user input
Rust Handling Errors with Result and Option: Exercise-1 with Solution
Write a Rust program that reads an integer from user input and prints its cube root, handling invalid input.
Sample Solution:
Rust Code:
use std::io;
fn main() {
println!("Enter an integer to find its cube root:"); // Prompt the user to enter an integer
let mut input = String::new(); // Create a mutable String to store user input
io::stdin().read_line(&mut input).expect("Failed to read line"); // Read user input from stdin
let trimmed_input = input.trim(); // Remove leading/trailing whitespaces and newlines
match trimmed_input.parse::() {
// Try to parse the trimmed input string into an i32
Ok(num) => {
// If parsing is successful, calculate the cube root and print the result
let cube_root = (num as f64).cbrt();
println!("Cube root of {} is {:.2}", num, cube_root);
}
Err(_) => {
// If parsing fails, print an error message
eprintln!("Invalid input: Please enter a valid integer");
}
}
}
Output:
Enter an integer to find its cube root: Cube root of 125 is 5.00
Explanation:
Here's a brief explanation of the above Rust code:
- The program prompts the user to enter an integer.
- It reads user input from standard input (stdin) and stores it in a mutable "String" named 'input'.
- The "trim()" method removes leading and trailing whitespaces and new lines from the input.
- The parse::<i32>() method attempts to parse the trimmed input string into an 'i32'. If successful, the parsed number is stored in the 'num' variable.
- Inside the 'match' block, if parsing is successful (Ok(num)), the program calculates the cube root of the parsed number using the "cbrt()" method from the 'f64' type (since "cbrt()" is not directly available for 'i32').
- If parsing fails (Err(_)), the program prints an error message indicating invalid input.
Rust Code Editor:
Previous: Rust Handling Errors with Result and Option Exercises.
Next: Rust Function: Read file with Error handling.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
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/error_handling/rust-handling-errors-with-result-and-option-exercise-1.php
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics