Bonjour !

Je suis �tudiant, je poste ce probl�me auquel je perd patience car je ne trouve aucune solution.
J'ai cr�e un programme (en C++ sur console, je suis sur visual studio) qui me permet d'afficher le/les poid(s) de chaque chiffre d'un nombre saisir par un utilisateur.
La 1 �re version de mon programme marche, j'ai donc rajout� une boucle pour permettre � l'utilisateur de d�cid� quand il veut arr�ter de saisir un nombre (en saisissant un simple 0).
A ce niveau pas de soucis, aucune erreur sauf ... Ma boucle marche bien, mais quand l'utilisateur saisie une 2 �me valeur, celle-ci ce rajoute � la 1 �re (ex: si l'user avait saisie 1023, et qu'il veuille saisir une autre valeur [admettons 101], cela m'affichera 1023101).

Solution 1 : j'ai essay� d'initialis� mon tableau � 0 � chaque fin de boucle pour �viter d'afficher les pr�c�dentes valeurs saisies par l'user.
Probl�me : des 0 s'affichent en plus de la nouvelle valeur (alors qu'a la 1 �re saisie ils ne s'affichent pas).

Je cherche donc un moyen d'effacer compl�tement les valeurs de mon tableau (oui je sais, m�me si cela n'est pas possible mais vous voyez ou je veux en venir), ou de pouvoir ne pas afficher les 0 (en laissant tout de m�me la condition de sorti du programme qui est obligatoire).

En r�sum� : Serait possible de ne pas afficher les 0 (ou l�ancienne valeurs que l'user � saisie) dans mon programme ? Je vous remercie d'avance.

info 1 : la sorti du programme en saisissant 0 est obligatoire, ainsi que le type "unsigned long int" pour la/les valeur(s) saisie(s).

info 2 : afficher le poids d'un nombre --> Le poids repr�sente la position du chiffre dans le nombre en partant de la droite (le premier
chiffre de droite est � la position 0, il a donc un poids 0).

Exemple concret : l'user saisie 10023, le programme doit afficher ceci :

Saisir un nombre : 10023
3 : 0 // Peut ce traduire " le poids de 3 et 0" ou encore "3 a pour poids 0"
2 : 1
0 : 2 3
1 : 4
10023
Saisir un nombre :

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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
 
#include "stdafx.h"
#include <iostream>
#include <algorithm> // ne sert finalement à rien si il faut ...
using namespace std;
 
#define TAILLE 8 // La taille du tableau est protéger par une constante est modifiable à tout moment
 
unsigned long int saisie_valeur(unsigned long int &valeur)
{
	cout << "Entrez un nombre (9 chiffres maximum) : "; cin >> valeur;
	return valeur;
}
 
unsigned long int calcul_poids(unsigned long int tableau[TAILLE], unsigned long int valeur, unsigned long int &taille_valeur)
{
	while (valeur > 0)
	{
		tableau[taille_valeur] = valeur % 10;
		valeur /= 10;
		++taille_valeur;
	}
	return taille_valeur;
}
 
void affichage_poids(unsigned long int tableau[TAILLE], unsigned long int taille_valeur)
{
	for(unsigned long int i = 0; i < taille_valeur; ++i)
	{
		cout << tableau[i] << " : " << i << endl;
	}
 
	// Affichage de la valeur saisie par l'utilisateur
	for(int i = taille_valeur - 1; i >= 0; --i) // décrémentation pour afficher la valeur de départ (parcours le tableau à l'envers)
	{
		cout << tableau[i];
	}
	cout << endl;
}
 
int main()
{
	unsigned long int tableau[TAILLE] = { 0 }; // le type "unsigned long int" est obligatoire (la consigne le dit)
	unsigned long int valeur(0), taille_valeur(0);
 
	// Saisie de la valeur par l'Utilisateur
	saisie_valeur(valeur);
 
	while (valeur != 0)
	{
		// calcul du poid des chiffres
		calcul_poids(tableau, valeur, taille_valeur);
 
		// Affichage des chiffres avec leurs poids respectif
		affichage_poids(tableau, taille_valeur);
 
		// Supprimer les données du tableau 
		... pas encore trouver de solution ... 
 
		saisie_valeur(valeur);
	}
 
	cout << "... Fermeture du programme ..." << endl;
 
	system("PAUSE");
    return 0;
}
Une image explicite :

Nom : 1.png
Affichages : 144
Taille : 8,4 Ko