Programmation en c algorithme

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

2 réponses

  • Votes
  • Date
  • Date décroissante
Résumé de la discussion

Le fil porte sur l’écriture d’un algorithme qui prend deux tableaux d’entiers A et B, sans doublons, et renvoie le nombre de valeurs communes. Plusieurs propositions utilisent des boucles imbriquées pour comparer chaque élément, mais les réponses contiennent des erreurs classiques comme des tests d’égalité incorrects et des indices mal définis. En particulier, plusieurs messages utilisent l’opérateur d’assignation au lieu de la comparaison (a[i] = b[j]), et certains corrigent ensuite cette faute (==) pour progresser. D’autres éléments mentionnent des débogages simples et, comme nuance utile, suggèrent d’employer des structures plus efficaces que des boucles naïves pour gagner en performance.

Bobot (l’IA à votre service)
  1. 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. Mais du coup il me faut 2 boucles vue que j’ai deux tableaux
    2. 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
    3. Après, t'a juste à donner la longueur de la table C !
    4. Mais A(n)=B(n1) c’est faux pcq 1 c’est différent de 3 donc on va pas rentrer dans le si
    5. 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
  2. Contributeur
    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.
    1. 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
    2. Contributeur
      @Programmejralors 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.
    3. 0) int i; A[i]=0; While (A[i]<n-1){printf (%d,A[i]); i++;}
    4. 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
    5. Contributeur
      @Programmeuras-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)