diff --git a/src/lib.rs b/src/lib.rs index 53583dd..c15f7a5 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -8,16 +8,19 @@ pub mod parser; pub mod maths; -pub fn format(v: &Vec) -> String { +pub fn format(v: &[GaussianRational]) -> String { let mut format; format = v[0].format(false); if v.len() > 1 { + let mut format2 = v[1].format(true); + if format2 == "" { if format == "" { - format = format!("{}x", v[1].format(true)); + format = format!("{}x", format2); } else { - format = format!("{format} + {}x", v[1].format(true)); + format = format!("{format} + {}x", format2); } } + } for i in 2..v.len() { let tmp = v[i].format(true); if tmp != "" { @@ -41,7 +44,7 @@ pub fn parse(query: &str) -> Result> { Ok(ast) } -fn print_reduced_form(equation: &Vec) { +fn print_reduced_form(equation: &[f64]) { let mut string = String::from("Reduced form: "); for (i, n) in equation.iter().enumerate() { diff --git a/src/main.rs b/src/main.rs index 51ebd97..d47493c 100644 --- a/src/main.rs +++ b/src/main.rs @@ -17,7 +17,11 @@ fn main() { process::exit(1); }); if is_equation { - println!("{} = 0", computorv1::format(&evaluated)); + let mut format = computorv1::format(&evaluated); + if format == "" { + format = String::from("0"); + } + println!("{} = 0", format); computorv1::maths::solver::solve(evaluated); } else { println!("{} is equal to:", args[1]);