Inscription / Connexion Nouveau Sujet
Niveau algorithmique
Partager :

Comparer 2 tableaux en C

Posté par
mikeo
22-12-11 à 23:13

Bonjour,

J'ai un exercice à faire en C et je suis bloqué: je dois comparer 2 tableaux grace à l'ordre lexicographique: voici ce que j'ai fait

#include <stdio.h>
#define N 5
int main(void)
{
  int i,inf=1;
  int tableau1[N]={1,2,5,8,3};
  int tableau2[N]={1,2,4,8,9};
  
  for (i=0;i<N;i++)
  {
    if (tableau2[i]<tableau1[i])inf=0;
  }
  if (inf==1)printf("tableau1<=tableau2"); else printf("tableau2<tableau1");

  return 0;
}

Voilà, je sais qu'il ne me manque pas grand chose mais je ne trouve pas..

Merci de m'aider!

Posté par
anasou
re : Comparer 2 tableaux en C 22-12-11 à 23:30

Bonsoir,
il suffit d'ajouter  system("PAUSE"); avant le 'return 0;'

Posté par
mikeo
re : Comparer 2 tableaux en C 23-12-11 à 00:26

Pas besoin de boucle Do While imbriquée ?

L'instruction system ("PAUSE") consiste en quoi au juste?

Posté par
anasou
re : Comparer 2 tableaux en C 23-12-11 à 01:05

Si tu veux juste comparer ces deux tableaux statiques do while jouera la mm fonction que for en effet , tu peux remplacer :

for (i=0;i<N;i++)
  {
    if (tableau2[i]<tableau1[i])inf=0;
  }

par :
  
i=0;
do
{
    if (tableau2[i]<tableau1[i])
      inf=0;
    i++;
}while(i<5)


l'instruction :  system("PAUSE") permet tout simplement au programme de faire une pause pour permettre a l'utilisateur de voir ce qui a été affiché,en effet, si tu compiles ce code tel qu'il est maintenant tu ne vas voir qu'un écran noir qui va durer même pas une seconde .

Posté par
mikeo
re : Comparer 2 tableaux en C 23-12-11 à 08:34

Je ne comprends pas en quoi faire une pause résout mon problème..

Je veux, au final, savoir si tableau 1 > tableau 2 ou inversement et affiche le resultat à l'aide d'un printf tout en sachant que je dois résoudre ceci grâce à l'ordre lexicographique: le fait de mettre en pause ne change rien au programme que j'ai fait: il affichera la même chose (pas ce que je voulais c'est pour cela que je suis venu demander de l'aide) un peu plus tard du fait de la pause non?

Posté par
Bachstelze
re : Comparer 2 tableaux en C 23-12-11 à 10:52

#include <stdio.h>
#define N 5

int main(void)
{
  int tableau1[N] = {1, 2, 5, 8, 3};
  int tableau2[N] = {1, 2, 4, 8, 9};
  int inf = 0;

  for (int i=0; i<N; i++) {
    if (tableau1[i] < tableau2[i]) {
      inf = -1;
      break;
    } else if (tableau2[i] < tableau1[i]) {
      inf = 1;
      break;
    }
  }

  if (inf == -1) {
    printf("tableau1 < tableau2");
  } else if (inf == 1) {
    printf("tableau2 < tableau1");
  } else {
    printf("tableau1 == tableau2");
  }
}

Posté par
mikeo
re : Comparer 2 tableaux en C 23-12-11 à 14:42

Merci, pouvez-vous juste m'expliquer l'utilisation du break?

Posté par
Bachstelze
re : Comparer 2 tableaux en C 23-12-11 à 14:52

Le break sert à sortir de la boucle dès qu'on a trouvé une différence entre les tableaux. C'est uniquement la première paire d'éléments différents qui est significative. Sans le break, la boucle continue jusqu'à la fin, et si on a par exemple [1, 2, 3, 4, 5] et [1, 3, 2, 5, 4], l code dira que le premier tableau est supérieur au second (parce que 5 > 4 au dernier chiffre).

Posté par
mikeo
re : Comparer 2 tableaux en C 23-12-11 à 21:42

D'accord, je vous remercie



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !