ADVERTISEMENT
ADVERTISEMENT

Rust program to find the roots of a quadratic equation

Given the values of a, b and c, find the roots of a quadratic equation using Rust program.
Submitted by Nidhi, on September 29, 2021

Problem Solution:

Here, we will read the value of a, b, and c, and calculate the roots of a quadratic equation.

Program/Source Code:

The source code to the roots of a quadratic equation is given below. The given program is compiled and executed successfully.

// Rust program to roots of a quadratic equation

use std::io;

fn main() {
    let mut a:f32 = 0.0;
    let mut b:f32 = 0.0;
    let mut c:f32 = 0.0;
    
    let mut rootA:f32 = 0.0;
    let mut rootB:f32 = 0.0;

    let mut realp:f32 = 0.0;
    let mut imagp:f32 = 0.0;
    let mut disc:f32  = 0.0;
    
    let mut input1 = String::new();
    let mut input2 = String::new();
    let mut input3 = String::new();
    
    println!("Enter A: ");
    io::stdin().read_line(&mut input1).expect("Not a valid string");
    a = input1.trim().parse().expect("Not a valid number");

    println!("Enter B: ");
    io::stdin().read_line(&mut input2).expect("Not a valid string");
    b = input2.trim().parse().expect("Not a valid number");
    
    println!("Enter C: ");
    io::stdin().read_line(&mut input3).expect("Not a valid string");
    c = input3.trim().parse().expect("Not a valid number");

    if a == 0.0 || b == 0.0 || c == 0.0 
    {
        println!("Error: Unable to determine roots");
        return;
    }
    else 
    {
        disc = b * b - 4.0 * a * c;
        if disc < 0.0 
        {
            println!("Imaginary Roots");
            realp = -b / (2.0 * a);
            disc = disc.abs();
            imagp = disc.sqrt() / (2.0 * a);
            println!("Root1 = {}  +i {}", realp, imagp);
            println!("Root2 = {}  -i {}", realp, imagp);
        }
        else if disc > 0.0 
        {
            println!("Roots are real and distinct");
            rootA = (-b + disc.sqrt()) / (2.0 * a);
            rootB = (-b - disc.sqrt()) / (2.0 * a);
            println!("Root1 = {}  ", rootA);
            println!("Root2 = {}  ", rootB);
        }
        else if disc == 0.0
        {
            println!("Roots are real and equal");
            rootA = -b / (2.0 * a);
            rootB = rootA;
            println!("Root1 = {}", rootA);
            println!("Root2 = {}", rootB);
        }
    }
}

Output:

Enter A: 
20
Enter B: 
30
Enter C: 
40
Imaginary Roots
Root1 = -0.75  +i 1.1989579
Root2 = -0.75  -i 1.1989579

Explanation:

Here, we read the value of a, b, c from the user. Then we calculated the roots of a quadratic equation.

Rust Basic Programs »



ADVERTISEMENT



ADVERTISEMENT



Comments and Discussions


ADVERTISEMENT

ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT

Languages: » C » C++ » C++ STL » Java » Data Structure » C#.Net » Android » Kotlin » SQL
Web Technologies: » PHP » Python » JavaScript » CSS » Ajax » Node.js » Web programming/HTML
Solved programs: » C » C++ » DS » Java » C#
Aptitude que. & ans.: » C » C++ » Java » DBMS
Interview que. & ans.: » C » Embedded C » Java » SEO » HR
CS Subjects: » CS Basics » O.S. » Networks » DBMS » Embedded Systems » Cloud Computing
» Machine learning » CS Organizations » Linux » DOS
More: » Articles » Puzzles » News/Updates

© https://www.includehelp.com some rights reserved.