Created
April 14, 2024 10:43
-
-
Save 3dgoose/26ce52d9a5a42419f0e523f1d4224f58 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
use std::io; | |
fn main() { | |
let mut n: u32; | |
let mut count: i32 = 0; | |
let mut majorite: i32; | |
let taille_min = 5; | |
let taille_max = 25; | |
let mut t: Vec<i32> = Vec::with_capacity(taille_max); | |
loop { | |
println!("Saisir la taille du tableau N (entre {} et {}) : ", taille_min, taille_max); | |
match io::stdin().read_line(&mut String::new()) { | |
Ok(_) => { | |
match n.parse::<u32>() { | |
Ok(val) => { | |
n = val; | |
if n >= taille_min && n <= taille_max { | |
break; | |
} else { | |
println!("Erreur : la valeur de N doit être comprise entre {} et {}.", taille_min, taille_max); | |
} | |
} | |
Err(_) => println!("Erreur : valeur saisie invalide."), | |
} | |
} | |
Err(error) => println!("Erreur de lecture : {}", error), | |
} | |
} | |
// Remplissage du tableau T | |
println!("Remplir le tableau T par {} entiers :", n); | |
for i in 0..n { | |
println!("T[{}] = ", i + 1); | |
let mut input = String::new(); | |
match io::stdin().read_line(&mut input) { | |
Ok(_) => { | |
match input.trim().parse::<i32>() { | |
Ok(val) => t.push(val), | |
Err(_) => println!("Erreur : valeur saisie invalide."), | |
} | |
} | |
Err(error) => println!("Erreur de lecture : {}", error), | |
} | |
} | |
// Recherche de l'élément majoritaire | |
majorite = t[0]; | |
for val in t.iter() { | |
if *val == majorite { | |
count += 1; | |
} else { | |
count -= 1; | |
if count < 0 { | |
majorite = *val; | |
count = 1; | |
} | |
} | |
} | |
// Vérification et affichage du résultat | |
if count > 0 { | |
println!("{} est un élément majoritaire dans le tableau.", majorite); | |
} else { | |
println!("Le tableau ne possède pas d'élément majoritaire."); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment