Programme en c

Résolu/Fermé
ivesso Messages postés 98 Date d'inscription samedi 1 novembre 2008 Statut Membre Dernière intervention 5 juillet 2011 - 10 nov. 2009 à 20:25
loupius Messages postés 697 Date d'inscription dimanche 1 novembre 2009 Statut Membre Dernière intervention 31 décembre 2017 - 10 nov. 2009 à 21:58
Bonjour,
ecrire un programme qui lit un nombre entier N formé de 4 chiffres donné par l'utilisateur et qui calcule et affiche chaque chiffre composant le nomre de N sur une ligne
exemple:
pour N=4963,le programme affiche :
le 1er chiffre est :4
le 2eme-- :9
le 3eme----- :6
le 4eme ----- :3

/*jai essayé avec ce programme mai sa marche pas
#include <stdio.h>
#include<conio.h>
main ()
{
int n,a,b,c,d,reste1,reste2,reste3;
printf("donner un nombre de 4 chiffres:");
scanf("%d",&n);
a=n/1000;
b=reste1/100;
reste2/10=c;
reste3=d;

printf("le premier chiffre est: %d\n le deuxieme chiffre est: %d \n le toisieme chiffre est : %d \n le quatrieme chiffre est : %d\n",a,b,c,d);
getch();
*/

5 réponses

FrenchFigraro Messages postés 108 Date d'inscription jeudi 15 octobre 2009 Statut Membre Dernière intervention 22 décembre 2009 24
10 nov. 2009 à 20:38
C'est sur que ça risque pas.

Pour a tu dis n/1000, or a est déclaré comme un entier. n/1000 n'en est pas un. Mais admettons qu'il en soit un, ça n'est pas exactement comme ça qu'on récupère les chiffres.

De plus, tu utilises reste1, reste2 et reste3 sans les utiliser...

Deux méthodes, la première, utiliser une variable intermédiaire de type chaine (string)
Tu écris n dans cette variable, et ensuite tu lis les éléments de cette variable (le string étant traité comme un tableau).

Si tu as juste besoin d'écrire les nombres, ça devrait être bon.

Par contre, si tu as besoin de les réutiliser ensuite il te faut utiliser une méthode plus mathématique.
Heureusement que ton nombre a un nombre connu à l'avance de chiffre parce que sinon, bonjour la galère ^^

Dans ce cas là, ce qu'il faut que tu fasses, c'est regarder combien il y a de fois 1000 dans n (division entière, fonction modulo...), écrire ce nombre dans a et écrire le reste dans n (ou dans une variable intermédiaire). Ensuite, tu réitères le même procédé avec 100 dans ta nouvelle valeur de n, tu inscris le résultat dans b, tu inscris le reste dans n (ou dans la variable) et ainsi de suite pour 10 et 1
0
Le concombre démasqué
10 nov. 2009 à 20:38
salut
utilise plutôt l'opérateur modulo (%) pour récupérer le reste d'une division euclidienne
0
ivesso Messages postés 98 Date d'inscription samedi 1 novembre 2008 Statut Membre Dernière intervention 5 juillet 2011
10 nov. 2009 à 21:12
//#include <stdio.h>
#include<conio.h>
main ()
{
int n,a,b,c,d,reste1,reste2,reste3;
printf("donner un nombre de 4 chiffres:");
scanf("%d",&n);
a=n/1000;
b=reste1/100;
reste1=n%100;
c=reste2/10;
reste2=n%10;

reste3=d;

printf("le premier chiffre est: %d\n le deuxieme chiffre est: %d \n le toisieme chiffre est : %d \n le quatrieme chiffre est : %d\n",a,b,c,d);
getch();
}//
quand jexecute jai
pour n=4321
le premier est 4
.... :1
..................:229361
..................:140
0
Le concombre démasqué
10 nov. 2009 à 21:27
re

réécris la section entre scanf("%d",&n); & printf("le premier...
car tu utilises des variables non initialisées
ie: c = reste1 / 100 alors que tu n'as encore rien mis dans reste1
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ivesso Messages postés 98 Date d'inscription samedi 1 novembre 2008 Statut Membre Dernière intervention 5 juillet 2011
10 nov. 2009 à 21:36
jai trouvé , merci
0
loupius Messages postés 697 Date d'inscription dimanche 1 novembre 2009 Statut Membre Dernière intervention 31 décembre 2017 148
10 nov. 2009 à 21:58
Dès lors, le mieux est d'expliciter ce que tu as trouvé et qui pourra donc servir à celui qui dans ses recherches tomberait sur ton post, puis de mettre ton post en 'résolu' afin que les personnes bénévoles qui cherchent à aider, ne perdent pas de temps à lire ton post.
Merci et bonne continuation.
0