-
Notifications
You must be signed in to change notification settings - Fork 20
/
Copy path035.rs
54 lines (41 loc) · 1.53 KB
/
035.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
/*
Desafio 035
Problema: Desenvolva um programa que leia o comprimento de três
retas e diga ao usuário se elas podem ou não formar um triângulo
*/
fn main() {
let mut lado_a = String::new();
let mut lado_b = String::new();
let mut lado_c = String::new();
println!("Informe a medida do lado A: ");
std::io::stdin().read_line(&mut lado_a).unwrap();
println!("Informe a medida do lado B: ");
std::io::stdin().read_line(&mut lado_b).unwrap();
println!("Informe a medida do lado C: ");
std::io::stdin().read_line(&mut lado_c).unwrap();
let lado_a = lado_a
.trim()
.parse::<i32>()
.expect("Valor inserido não é um número válido.");
let lado_b = lado_b
.trim()
.parse::<i32>()
.expect("Valor inserido não é um número válido.");
let lado_c = lado_c
.trim()
.parse::<i32>()
.expect("Valor inserido não é um número válido.");
let diff_ab = (lado_a - lado_b).abs();
let diff_bc = (lado_a - lado_c).abs();
let diff_ca = (lado_a - lado_c).abs();
let sum_ab = lado_a + lado_b;
let sum_bc = lado_a + lado_c;
let sum_ca = lado_a + lado_c;
let is_a_valid = diff_bc < lado_a && lado_a < sum_bc;
let is_b_valid = diff_ca < lado_b && lado_b < sum_ca;
let is_c_valid = diff_ab < lado_c && lado_c < sum_ab;
if is_a_valid && is_b_valid && is_c_valid {
return println!("As retas PODEM formar um triângulo.");
}
return println!("As retas NÂO podem formar um triângulo.");
}