Probleme avec un exercice sur borland C

Fermé
nabil emsi Messages postés 27 Date d'inscription samedi 6 novembre 2010 Statut Membre Dernière intervention 22 juin 2011 - 6 nov. 2010 à 13:07
nabil emsi Messages postés 27 Date d'inscription samedi 6 novembre 2010 Statut Membre Dernière intervention 22 juin 2011 - 7 nov. 2010 à 23:21
Bonjour,

Ecrire un programme qui lit un nombre entier N formé de 4 chiffres donnée par l'utilisateur et qui calcule et affiche chaque chiffre composant le nombre N sur une ligne
Exemple :
Pour N=4963,le programme affiche :
le chiffre 1 est : 4
le chiffre 2 est : 9
le chiffre 3 est : 6
le chiffre 4 est : 3
Sur borland C
merci bcp

A voir également:

14 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 841
Modifié par fiddy le 6/11/2010 à 18:17
Bonjour,

Soit a1, a2, a3, a4 les chiffres des milliers, centaines, dizaines et unité.
Pour trouver a1, une simple division par 1000 fait l'affaire.
Pour trouver a2, il faut recalculer N qui vaudra N modulo 1000, et a2 vaudra N/100.
Etc.

Je te laisse poster le début du code pour qu'on puisse te corriger éventuellement.

Cdlt,
0
nabil emsi Messages postés 27 Date d'inscription samedi 6 novembre 2010 Statut Membre Dernière intervention 22 juin 2011 1
6 nov. 2010 à 15:15
aide moi j'ai rien compris c'est tres difficle
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 841
6 nov. 2010 à 15:21
Beh je t'ai aidé.
Dis-moi plutôt ce que tu trouves difficile ?
Si tu trouves ça trop difficile, fais le programme lorsque l'utilisateur tape un seul chiffre. Par exemple, le chiffre 5. Après, tu feras pour deux chiffres comme 14.
Etc.
0
nabil emsi Messages postés 27 Date d'inscription samedi 6 novembre 2010 Statut Membre Dernière intervention 22 juin 2011 1
6 nov. 2010 à 16:08
j'ai fait un programme mais c'est nul
#include <stdio.h>
#include <conio.h>
main()
{
double N,A1,A2;
double reste;

printf("Introduisez le nombre N : ");
scanf("%lf",N);
A1=N/10;

A2=reste;
printf("%lf 10 et %lf 1 \n",1ch,2ch);


getch();
}
0

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

Posez votre question
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 841
6 nov. 2010 à 16:44
C'est un début.
Je t'ai corrigé ce qui n'allait pas. Et je t'ai mis sur la piste.
A toi de comprendre l'algorithme, de faire des tests et de remplir les petits points du programme suivant :
#include <stdio.h> 
 
int main(void) 
{ 
int N,A1; 
int reste; 

/*div contient 1 si le nombre est compris entre 0 et 9, 10 si c'est entre 10 et 99, ...*/
int div=1000;

printf("Introduisez le nombre N : "); 
scanf("%d",&N); 
reste=N;

while(...) {
     /*on récupère le ch*/
    A1=reste/...;
    reste=reste%...;
    div=div/...;
    printf("chiffre=%d\n",...);
}
getchar();
return 0; 
}

Ce programme ensuite devra être amélioré pour calculer la valeur de div tout seul, en fonction de ce que l'utilisateur tape (prochaine étape) ;-))).

Cdlt,
0
nabil emsi Messages postés 27 Date d'inscription samedi 6 novembre 2010 Statut Membre Dernière intervention 22 juin 2011 1
6 nov. 2010 à 16:57
j'ai rien compris
fait moi le programme et je vais le comprendre parceque
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 841
6 nov. 2010 à 17:31
Non désolé, je ne fais pas ton devoir.
Si tu veux de l'aide, formule clairement ce qui te pose problème et on t'expliquera.
Je t'ai déjà donné le squelette de ton programme...
0
oliver3923 Messages postés 971 Date d'inscription vendredi 14 mai 2010 Statut Membre Dernière intervention 15 novembre 2014 143
6 nov. 2010 à 18:05
bonjour

pour faire un programme dans ce genre ce n'est pas trop compliqué (comme fiddy je ne le ferai pas a ta place quand même)

dans les opérations en C tu a le modulo (%) qui te renvoie le reste de la division
par exemple 10%3 te renverra 1 (10/3 = 3 et le reste est 1)

dans ton cas tu dois faire la même chose


Soit a1, a2, a3, a4 les chiffres des milliers, centaines, dizaines et unité.
Pour trouver a1, une simple division par 1000 fait l'affaire.
Pour trouver a2, il faut recalculer N qui vaudra N modulo a1, et a2 vaudra N/100.
Etc.

(désolé pour le plagia^^)


tout est la
pour a1 tu fait une simple division par 1000 (par exemple 4527 /1000 = 4.527, donc comme c'est des entiers le programme renverra 4)

ensuite tu dois faire N % 1000 qui te retournera 527

tu dois donc calculer a2 a3 et a4 de la même facon

si tu ne comprend toujours pas dis nous exactement quelle partie tu ne comprend pas pour qu'on puisse t'expliquer clairement stp
0
nabil emsi Messages postés 27 Date d'inscription samedi 6 novembre 2010 Statut Membre Dernière intervention 22 juin 2011 1
7 nov. 2010 à 00:06
mon probleme c'est comment faire la div sur c
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 841
7 nov. 2010 à 00:15
On te l'a déjà dit.
toto=34/10; et toto vaudra 3
titi=34%10; et titi vaudra 4.
Cdlt,
0
nabil emsi Messages postés 27 Date d'inscription samedi 6 novembre 2010 Statut Membre Dernière intervention 22 juin 2011 1
7 nov. 2010 à 00:30
je ne sais po comment l'appliquer mr fiddy walah je suis nul en programmation je te jure aide moi j'ai de le rendement du devoir
0
nabil emsi Messages postés 27 Date d'inscription samedi 6 novembre 2010 Statut Membre Dernière intervention 22 juin 2011 1
7 nov. 2010 à 13:09
feddy en n'a pas encors fait while
et nous en travail sur
dev c++
0
nabil emsi Messages postés 27 Date d'inscription samedi 6 novembre 2010 Statut Membre Dernière intervention 22 juin 2011 1
7 nov. 2010 à 13:43
#include <stdio.h>
#include <conio.h>
main(void)
{
int N,A1,A2,A3,A4;
int reste;
printf("Introduisez le nombre N : ");
scanf("%d",&N);
A1=N/1000;
reste=N%1000;
printf("le 1er chiffre est:A1");
A2=reste/100;
reste=A1%100;
printf("le 2eme chiffre est:A2");
A3=reste/10;
reste=A2%10;
printf("le 3eme chiffre est:A3");
A4=reste;
printf("le 4eme chiffre est :A4");
getch();
}
0
nabil emsi Messages postés 27 Date d'inscription samedi 6 novembre 2010 Statut Membre Dernière intervention 22 juin 2011 1
7 nov. 2010 à 13:43
fedyy j'ai fait ce programme corrige le moi stp
0
nabil emsi Messages postés 27 Date d'inscription samedi 6 novembre 2010 Statut Membre Dernière intervention 22 juin 2011 1
7 nov. 2010 à 13:58
#include <stdio.h>
#include <conio.h>
main(void)
{
int N,A1,A2,A3,A4;
int reste;
int div=1000;
printf("Introduisez le nombre N : ");
scanf("%d",&N);
A1=N/1000;
reste=N%1000;
div=div/1000;
printf("1er chiffre=%d\n",A1);
A2=reste/100;
reste=A1%100;
div=div/100;
printf("2eme chiffre=%d\n",A2);
A3=reste/10;
reste=A1%10;
div=div/10;
printf("3eme chiffre=%d\n",A3);
A4=reste/1;
reste=A2%1;
div=div/1;
printf("4eme chiffre=%d\n",A4);
getch();
}
j'ai fais ce programme mais j'ai un blem dans le chifre 3 et 4
0
oliver3923 Messages postés 971 Date d'inscription vendredi 14 mai 2010 Statut Membre Dernière intervention 15 novembre 2014 143
7 nov. 2010 à 14:51
A1=N/1000;
reste=N%1000;
div=div/1000;


essai de faire
A1 = N/1000;
N = N%1000;


A2 = N/100;
N = N%100;

...


tu n'a pas besoin de faire une variable exprès tu peux modifier directement la valeur de ta variable N
il me semble que tu peux même faire N %= 1000 pour aller plus vite mais je ne suis plus sur (je sais que ca marche avec += et -= mais pour %= faudrait vérifier)
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 841
7 nov. 2010 à 15:06
Affirmatif ;-)))
0
nabil emsi Messages postés 27 Date d'inscription samedi 6 novembre 2010 Statut Membre Dernière intervention 22 juin 2011 1
7 nov. 2010 à 23:21
deja fait merci
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 841
7 nov. 2010 à 14:14
Ah, tu me fais plaisir. Le principe est là, ce n'est plus que des erreurs de programmation.
Je te corrige :
Attention à tes printf, il faut sortir la variable comme dans l'exemple ci-dessous :
printf("le 1er chiffre est: %d\n",A1);

%d sera remplacé par la variable A1 et \n sautera une ligne.
0