Programmation en c algorithme

programmeur -  
 Programmeur -
Bonjour,

voila je doit écrire un programme mais je suis bloquer je ne sais pas par ou commencer
"Écrire un algorithme qui prend en entrée deux tableaux d’entiers A et B
et qui retourne le nombre de valeurs présentes à la fois dans A et dans B. On suppose que les tableaux sont de taille n et qu’il n’y a pas de valeur en double dans chaque tableau."
merci pour vos réponse
A voir également:

2 réponses

N005 Messages postés 44 Date d'inscription   Statut Membre Dernière intervention   11
 
Bonjour,
Cela est assez simple, je vais ne pas vous donnez le code, mais l'algo:
Faire une boucle (For de n), dedans vérifier à chaque tour une égalités de chaque table avec n.
Donnez les résultat !
1
Programmeur
 
Mais du coup il me faut 2 boucles vue que j’ai deux tableaux
0
N005 Messages postés 44 Date d'inscription   Statut Membre Dernière intervention   11
 
Exemple:

Définition de variable (table): A, B et C.

Longueur de la table = T

A=[1,2,3]
B=[3,4,5]

Répéter [longueur table (T)] [n+1 à chaque tour]:
__Répéter [longueur table (T)] [n1+1 à chaque tour]:
____Si A(n)=B(n1) alors ajouter n1 dans la table C
__n1=0
0
N005 Messages postés 44 Date d'inscription   Statut Membre Dernière intervention   11
 
Après, t'a juste à donner la longueur de la table C !
0
Programmeur
 
Mais A(n)=B(n1) c’est faux pcq 1 c’est différent de 3 donc on va pas rentrer dans le si
0
N005 Messages postés 44 Date d'inscription   Statut Membre Dernière intervention   11
 
Nan:
Ordre d’exécution:
----------------------
A=[1,2,3]
B=[3,4,5]
T=3
n1=0
n=0
-----------------------
1er tour: (n=0)
__1er tour: (n1=0)
____A(n)=B(n1)
__<=>A(0)=B(0)
__<=>1!=3
__2 tour: (n1=1)
____A(n)=B(n1)
__<=>A(0)=B(1)
__<=>1!=4
__3 tour: (n1=2)
____A(n)=B(n1)
__<=>A(0)=B(2)
__<=>1!=5
2 tour: (n=1)
__1er tour: (n1=0)
____A(n)=B(n1)
__<=>A(1)=B(0)
__<=>2!=3
__2 tour: (n1=1)
____A(1)=B(n1)
__<=>A(0)=B(1)
__<=>2!=4
__3 tour: (n1=2)
____A(n)=B(n1)
__<=>A(1)=B(2)
__<=>2!=5
3 tour: (n=2)
__1er tour: (n1=0)
____A(n)=B(n1)
__<=>A(2)=B(0)
__<=>3=3 alors C=[3]
__2 tour: (n1=1)
____A(n)=B(n1)
__<=>A(2)=B(1)
__<=>3!=4
__3 tour: (n1=2)
____A(n)=B(n1)
__<=>A(2)=B(2)
__<=>3!=5

Donc C donne [3]
Sois une seul valeur dans la table C
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour, commence par faire ceci:
1) montre-nous un programme qui affiche le contenu des deux tableaux.
2) explique-nous comment tu ferais dans la vie réelle, si on te donnait deux paquets de 10 cartes, sans carte en double dans chacun des paquets, et que tu devais déterminer le nombre de cartes présentes dans les deux paquets.
0
Programmejr
 
En fait j’arrive à faire pour un seul tableau c’est à dire que quand j’ai le nombre de valeur du premier tableau je sais pas quoi faire peut être je fait une autre boucle qui prend en argument le deuxième tableau
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Programmejr
 
alors fais ceci:
0) montre-nous un programme qui affiche le contenu d'un tableau
1) montre-nous un programme qui affiche le contenu des deux tableaux.
2) explique-nous comment tu ferais dans la vie réelle, si on te donnait deux paquets de 10 cartes, sans carte en double dans chacun des paquets, et que tu devais déterminer le nombre de cartes présentes dans les deux paquets.
0
Programmeur
 
0) int i; A[i]=0; While (A[i]<n-1){printf (%d,A[i]); i++;}
0
Programmeur
 
Mais du coup pour le deuxième je dois juste rajouter un autre printf avec B et dans le while je dois rajouter une autre condition qui dit B<n-1
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Programmeur
 
as-tu testé le 0? j'en doute!
testes ce que tu penses, puis, quand cela fonctionne, montre-le nous.
n'oublie pas le numéro 2, le plus important!
(j'ai l'impression que tu es très débutant, et que tu devrais commencer par des exercices plus simples)
0