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 :
Une image explicite :
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; }
![]()
Partager