Bonjour,
Je cherche un moyen d'afficher le nombre de fois qu'un caractère apparaît dans une matrice (et faire cela pour les autres caractères présents également). Je pense avoir besoin d'utiliser un foreach ( ou p-e un for), mais à part ça je n'ai pas vraiment d'idée :S
Comment faites-vous cela ?
Je vous poste mon code pour que vous ayez une idée de ce que j'essaie de faire:
Merci d'avance pour vos réponsesCode:using System; using System.Threading; namespace a { public class Program { public static Random alea = new Random(); public static void Main() { Console.WriteLine("Rectangle de lettres prises au hasard dans un string de caractères:"); int nbLignes; int nbColonnes; string caracteres; SaisieDonnees(out nbLignes, out nbColonnes, out caracteres); Console.WriteLine(); char[,] matRectangle = new char[nbLignes, nbColonnes]; FabriqueMatriceRectangle(caracteres, matRectangle); string message = ("Rectangle " + nbLignes + " x " + nbColonnes + " de lettres:"); AfficheMatriceRectangle(matRectangle, message); Console.WriteLine(); Console.WriteLine("Statistiques" ); Console.WriteLine("============"); } // fin méthode Main() private static void SaisieDonnees(out int nbLignes, out int nbColonnes, out string caracteres) { Console.Write("Donnez le nombre de lignes 1..19 : "); nbLignes = int.Parse(Console.ReadLine()); while (nbLignes < 1 || nbLignes > 19) { Console.WriteLine("Erreur: int attendu entre 1 et 19, vous avez entré l'entier {0}", nbLignes); Console.Write("Donnez le nombre de lignes 1..19 : "); nbLignes = int.Parse(Console.ReadLine()); } Console.Write("Donnez le nombre de colonnes 1..39 : "); nbColonnes = int.Parse(Console.ReadLine()); while (nbColonnes < 1 || nbColonnes > 39) { Console.WriteLine("Erreur: int attendu entre 1 et 39, vous avez entré l'entier {0}", nbColonnes); Console.Write("Donnez le nombre de colonnes 1..39 : "); nbColonnes = int.Parse(Console.ReadLine()); } Console.Write("Donnez le string de caractères: "); caracteres = Console.ReadLine(); while (caracteres.Length < 1 || caracteres.Length > 2147483647) { Console.WriteLine("Erreur : quantité de caractères attendue de 1 à 2147483647, vous avez entré \"{0}\"", caracteres); Console.Write("Donnez le string de caractères: "); caracteres = Console.ReadLine(); } } private static void AfficheMatriceRectangle(char[,] matRectangle, string message) { Console.WriteLine("{0}\n", message); for (int i = 0; i < matRectangle.GetLength(0); i++) { for (int j = 0; j < matRectangle.GetLength(1); j++) { Console.Write("{0,2}", matRectangle[i, j]); } Console.WriteLine(); } } private static void FabriqueMatriceRectangle(string caracteres, char[,] matRectangle) { for (int i = 0; i < matRectangle.GetLength(0); i++) { for (int j = 0; j < matRectangle.GetLength(1); j++) { char lettre = caracteres[alea.Next(0, caracteres.Length - 1)]; matRectangle[i, j] = lettre; } } } } // fin class Program } // fin namespace
-----