Re-Salut. Vous croyiez que je vous avez déjà assez emmerder pour la semaine ? ben non. désolé

Entre moi et les Char, sa passe pas. mais cette fois ci, le probleme est bizarre.

Le but de l'exo est de faire un convertisseur de chiffres Romains.
Pas de proposition, donc je me lance avec mon approche simpliste que j'ai nommé approche humaine .


Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
using System;
namespace exos
{
    class exo2
    {
        public static void Main(string[] args)
        {
            string input = Console.ReadLine();
            char[] tabNonC = input.ToCharArray();
           // Pour Tester ! foreach (int z in tabNonC) Console.WriteLine(z);
            int[] tabConv = new int[tabNonC.Length];
 
            //Conversion :
            foreach (int l in tabNonC)
            {
                int i = 0;
                switch (l)
                {
                    case 'm': tabConv[l] = 1000;
                        break;
                    case 'd': tabConv[l] = 500;
                        break;
                    case 'c': tabConv[i] = 100;
                        break;
                    case 'l': tabConv[l] = 50;
                        break;
                    case 'x': tabConv[l] = 10;
                        break;
                    case 'v': tabConv[l] = 5;
                        break;
                    case 'i': tabConv[l] = 1;
                        break;
                    default: Console.WriteLine("La " + (l + 1) + " Lettre saisie n'est pas un chiffre romain");
                        break;
                }
                i++;
            }
            int sum = 0,n;
            for (n = 0; n < tabConv.Length; n++)
            {
                if ((tabConv[n] < tabConv[n + 1]) & (n + 1 < tabConv.Length) | (n + 1 == tabConv.Length))
                    sum += tabConv[n];
                else sum -= tabConv[n];
            }
 
            Console.WriteLine(input + "=" + sum);
            Console.ReadLine();
 
        }
    }
}
Seulement voila, lors du Deboumgage j'ai eu droit a un gros exception non handled en bleu qui a fait ramait mon PC un bon bout de temps.
en cherchant dans les valeurs, j'ai remarqué que la valeur de la variable l au début était 120 lorsque input = "X" par exemple.
je ne sais pas d'où viens ce nombre, même si je pense que c'est un num ASCII ou quelque chose qui a un rapport avec le clavier.
Pourtant,mon tableau TabNonC(onverted) est bel et bien un tableau de char
alors pourquoi y'a t'il des numéros dedans?