Bonjour,

Je débute en programmation et je bug pour un exo.
Le but est d'afficher le rang de chaque chiffre d'un nombre saisi. Jusque là pas de souci.
Je bloque sur un problème d'occurrence. Il faut afficher qu'une fois un chiffre. Si il est saisi plusieurs fois, il faut afficher les rangs qu'il occupe.

voici mon code :

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
#include <iostream>
 
unsigned long int val;
unsigned long int valTemp;
int rangs;
int a;
int i,j;
 
int main()
{
    std::cout << "Entrer un entier naturel : ";
    std::cin >> val;
 
    // Transfert de val dans une autre variable.
    valTemp = val;
 
    rangs = 0;
 
    // Calcul du nombre de rangs.
    while (valTemp > 0)
    {
        valTemp = valTemp / 10;
        rangs++;
    }
 
    // Initialisation d'un tableau de la même taille que le nombre de rangs.
    int tabVal[rangs];
    tabVal[rangs];
 
    for(i = 0; i < rangs; i++)
    {
        tabVal[i] = 0;
    }
 
    // transfert du rang n dans le tableau tabVal à la position n.
    for(i = 0; i < rangs; i++)
    {
        tabVal[i] = val % 10;
        val = val / 10;
    }
 
    // C'est là que je bug.
    for(i = 0; i < rangs; i++)
    {
        std::cout << tabVal[i] << " : " << i << std::endl;
    }
 
    return 0;
}
Si quelqu'un peu voler à mon secour.

Merci