Execrcie de boucle"tant que"

Fermé
charaf1.0 Messages postés 17 Date d'inscription vendredi 14 novembre 2008 Statut Membre Dernière intervention 18 novembre 2013 - 13 janv. 2010 à 16:35
charaf1.0 Messages postés 17 Date d'inscription vendredi 14 novembre 2008 Statut Membre Dernière intervention 18 novembre 2013 - 26 janv. 2010 à 01:37
Bonjour,
bien je voudrai avoir la solution de cette exercice pour une vérification.
exercice: soient deux entier ,on souhait vérifier si les chiffres du premiers appartienne au second .
"bien sur on utilisant des boucles moi personnellement j'ai utilisé la boucle tant que ".
1-écrire le programme on c.
2-rédiger le rapport contenant l'analyse et l'algorithme.
exemple: premier chiffre 254871,
second chiffre 523 ,
le programme doit afficher que le chiffre 2 et le chiffre 5 appartienne au deux nombre .

merci.

10 réponses

Arya Dröttningu Messages postés 581 Date d'inscription mardi 12 janvier 2010 Statut Membre Dernière intervention 3 janvier 2019 157
13 janv. 2010 à 16:36
donne nous plutôt ce que tu as trouvé pour le moment et on te diras si ça colle
0
charaf1.0 Messages postés 17 Date d'inscription vendredi 14 novembre 2008 Statut Membre Dernière intervention 18 novembre 2013 1
13 janv. 2010 à 22:05
ok bien j'ai mit sa regarde si tu peut m'aider alor :
#include <stdio.h>
main()
{
int n1,n2,x,y;
printf ("intrdoduire deux valeur n1 et n2 ");
scanf ("%d%d",&n1,&n2);
do
{
x=n1%10;
n1=n1/10;

bool=0; /* se boll n'est pas ecrit correctemnt je le sait
^^ si vous pouvez me donne la solution */
do
{
y=n2%10;
n2=n2/10;
if (x=y)
}
printf ("le nombre",n1,"se trouve dans les deux chiffre");
{
}
while (n2/10<>0) et ( bool=0); /* selui la aussi */
}
while (x/10<>0);


system ("pause");
return 0;
}
0
Arya Dröttningu Messages postés 581 Date d'inscription mardi 12 janvier 2010 Statut Membre Dernière intervention 3 janvier 2019 157
14 janv. 2010 à 08:44
ok je regarde ça desuite et je te dis quoi.
0
Arya Dröttningu Messages postés 581 Date d'inscription mardi 12 janvier 2010 Statut Membre Dernière intervention 3 janvier 2019 157
14 janv. 2010 à 09:05
J'ai corrigé quelques petites erreurs mais dans l'ensemble tu étais bien parti. Quelques problèmes dans les accolades et dans les arrêts de boucles. Quant à ton "bool" il ne te sert à rien vu que tu ne change jamais sa valeur.


#include <stdio.h>
main()
{
	int n1,n2,x,y,n22;
	printf ("intrdoduire deux valeurs n1 et n2 \n");
	scanf ("%d%d",&n1,&n2);
	n22=n2;
	do
		{
		x=n1%10;
		n1=n1/10;
		n2=n22;
		do
			{
			y=n2%10;
			n2=n2/10;
			if (x==y)
				{
				printf ("le nombre %d se trouve dans les deux chiffres\n", x);
				}
			}
		while (n2!=0);
		}
	while (x!=0);



return 0;
}
0

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

Posez votre question
charaf1.0 Messages postés 17 Date d'inscription vendredi 14 novembre 2008 Statut Membre Dernière intervention 18 novembre 2013 1
15 janv. 2010 à 12:20
merci pour ton aide sa marche a merveille mais le seule problème c'est si tu met des nombre qui contient plusieurs fois le même chiffre y' aura exemple : n°1:585521 ,n2°:584254 .plutot qu'afficher qui ya un 5 dans les deux nombre une seule fois il va le respecter plusieurs fois d'où l'interé de la var bool c'est une autre condition pour mettre on arrête le système si y'a un nombre qui se répète plusieurs fois.

sinon sa marche a merveille merci ^^.
0
Arya Dröttningu Messages postés 581 Date d'inscription mardi 12 janvier 2010 Statut Membre Dernière intervention 3 janvier 2019 157
15 janv. 2010 à 12:25
ah d'accord je crois avoir compris bon je regarde ça
0
Arya Dröttningu Messages postés 581 Date d'inscription mardi 12 janvier 2010 Statut Membre Dernière intervention 3 janvier 2019 157
15 janv. 2010 à 12:47
j'ai fait avec un tableau de 10 éléments (représentant les 10 chiffres de 0 à 9) initialisé à 0 (faux) et dès qu'on trouve un chiffre on met la case à 1 comme ça on ne la refait pas......hum je sais pas si c'est très clair là......
Voilà le code


#include <stdio.h>
int main()
{
	int n1,n2,x,y,n22;
	int tab_fait[10] = {0,0,0,0,0,0,0,0,0,0} ;
	printf ("intrdoduire deux valeurs n1 et n2 \n");
	scanf ("%d%d",&n1,&n2);
	n22=n2;
	do
		{
		x=n1%10;
		n1=n1/10;
		n2=n22;
		
		do
			{
			y=n2%10;
			n2=n2/10;
			if ((x==y)&&(tab_fait[x]==0))
				{
				printf ("le nombre %d se trouve dans les deux chiffres\n", x);
				tab_fait[x] = 1 ;
				}
			}
		while (n2!=0);
		}
	while (x!=0);



return 0;
}
0
charaf1.0 Messages postés 17 Date d'inscription vendredi 14 novembre 2008 Statut Membre Dernière intervention 18 novembre 2013 1
15 janv. 2010 à 13:34
merci pour ton aide oui c'est un peut confu pour moi mais je vais essayer de saisire l'astuce
encore merci.
0
sa c'est mieux :^^

#include <stdio.h>
main()
{
int n1,n2,x,y,n22;
printf ("introduire deux valeurs n1 et n2 \n");
scanf ("%d%d",&n1,&n2);

if (n1==n2 && n2!=0 && n1!=0)

printf ("les deux valeur sont egale donc les chiffre appartenant dans le nombre n1 sont les meme que ceux du nombre n2 \n");

else
if (n1==0 || n2==0)
{ printf ("introduisez un nombre different de zero \n");}

else


n22=n2;
do
{
x=n1%10;
n1=n1/10;
n2=n22;
do
{
y=n2%10;
n2=n2/10;
if (x==y)
{
printf ("le nombre %d se trouve dans les deux chiffres\n", x);
}
}
while (n2/10!=0);
}
while (x/10!=0);


system ("pause");
return 0;
}
0
charaf1.0 Messages postés 17 Date d'inscription vendredi 14 novembre 2008 Statut Membre Dernière intervention 18 novembre 2013 1
26 janv. 2010 à 01:37
#include <stdio.h>
main()
{
int n1,n2,x,y,n22=0;
printf ("introduire deux valeurs n1 et n2 \n");
scanf ("%d%d",&n1,&n2);
if ( n1!=n2 )

{
n22=n2;
do
{
x=n1%10;
n1=n1/10;
n2=n22;
do
{
y=n2%10;
n2=n2/10;
if (x==y)
{
printf ("le nombre %d se trouve dans les deux chiffres\n", x);
}
}
while (n2!=0);
}
while (n1!=0);



}
else
if ( (n1==n2) && (n2!=0) && (n1!=0) )
{
printf ("les deux valeur sont egale donc les chiffre appartenant dans le nombre n1 sont les meme que ceux du nombre n2 \n");
}
else
if ( (n1==0) || (n2==0) )
{
printf ("introduisez un nombre different de zero \n");
}



system ("pause");
return 0;
}
0