Execrcie de boucle"tant que"

charaf1.0 Messages postés 17 Date d'inscription   Statut Membre Dernière intervention   -  
charaf1.0 Messages postés 17 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   157
 
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   Statut Membre Dernière intervention   1
 
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   Statut Membre Dernière intervention   157
 
ok je regarde ça desuite et je te dis quoi.
0
Arya Dröttningu Messages postés 581 Date d'inscription   Statut Membre Dernière intervention   157
 
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   Statut Membre Dernière intervention   1
 
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   Statut Membre Dernière intervention   157
 
ah d'accord je crois avoir compris bon je regarde ça
0
Arya Dröttningu Messages postés 581 Date d'inscription   Statut Membre Dernière intervention   157
 
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   Statut Membre Dernière intervention   1
 
merci pour ton aide oui c'est un peut confu pour moi mais je vais essayer de saisire l'astuce
encore merci.
0
charaf1.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   Statut Membre Dernière intervention   1
 
#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