Skip to content

Instantly share code, notes, and snippets.

@3dgoose
Created April 14, 2024 10:43
Show Gist options
  • Save 3dgoose/26ce52d9a5a42419f0e523f1d4224f58 to your computer and use it in GitHub Desktop.
Save 3dgoose/26ce52d9a5a42419f0e523f1d4224f58 to your computer and use it in GitHub Desktop.
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