Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2485 connectés 

  FORUM HardWare.fr
  Programmation
  C

  [C] Aide pour petit exo

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] Aide pour petit exo

n°2144411
bakkiesbou​cher
Posté le 03-06-2012 à 22:33:58  profilanswer
 

Bonjour, un ptit coup de pouce, parce que ce code me renvoi tableaux identiques même quand ils ne le sont pas. Merci

 
Code :
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main()
  4. {
  5.     int *tab=NULL;
  6.     int *tab2=NULL;
  7.     int taille;
  8.     int i;
  9.   printf("Saisir un entier n pour la taille du premier tableau:" );
  10.   scanf("%d",&taille);
  11.   for(i=1;i<=taille;i++)
  12.   {
  13.     tab=malloc(taille * sizeof(int));
  14.     printf("element %d =",i);
  15.     scanf("%d",&tab[i]);
  16.   }
  17. printf("Saisir un entier n pour la taille du 2nd tableau:" );
  18. scanf("%d",&taille);
  19.     for(i=1;i<=taille;i++)
  20.   {
  21.     tab2=malloc(taille * sizeof(int));
  22.     printf("element %d =",i);
  23.     scanf("%d",&tab2[i]);
  24.   }
  25.   if( id(*tab,*tab2,taille)==0)
  26.   {
  27.       printf("tableaux non identiques" );
  28.   }
  29.   else printf("tableaux identiques" );
  30. }
  31. Fonction:
  32.   int id(int *t1,int *t2,int taille)
  33. {
  34.       int i;
  35.   for(i=0;i<taille;i++)
  36.   {
  37.       if(t1[i] != t2[i])
  38.       {
  39.           return 0;
  40.       }
  41. return 1;
  42.   }
  43. }


Message édité par bakkiesboucher le 03-06-2012 à 22:35:21
mood
Publicité
Posté le 03-06-2012 à 22:33:58  profilanswer
 

n°2144413
mrbebert
Posté le 03-06-2012 à 22:48:02  profilanswer
 

Le "return 1" de la fonction doit être en dehors de la boucle. Là, dès la comparaison du 1er élément, la fonction se termine (par le "return 0" ou le "return 1" ), ce qui fait qu'elle ne compare que le 1er élément [:proy]


---------------
Doucement le matin, pas trop vite le soir.
n°2144414
bakkiesbou​cher
Posté le 03-06-2012 à 22:59:45  profilanswer
 

Oé mais ça me fait la même chose quand même :/

 

Peut être qu'il faut afficher les 2 tableaux et après les comparer non ?


Message édité par bakkiesboucher le 03-06-2012 à 23:03:46
n°2144415
gilou
Modérateur
Modzilla
Posté le 03-06-2012 à 23:07:37  profilanswer
 

1) Tu dois déjà comparer la taille de tes deux tableaux, et si elle est différente, tu renvoie faux
2) if( id(*tab,*tab2,taille)==0)
le compilo devrait raler, vu que *tab et *tab2 sont des entiers
c'est manifestement
if( id(tab, tab2,taille)==0)
ce que tu veux faire
 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2144430
bakkiesbou​cher
Posté le 04-06-2012 à 01:58:26  profilanswer
 

ok merci, résolu


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  [C] Aide pour petit exo

 

Sujets relatifs
[C/SDL] Rotation Image/PositionnementWrapper C++ avec SWIG
aide pour contrôle en javascript svp[Drupal] Bug IE & petit conflit avec développeur web
aide: moulinette SVP avec Exel et VBC++ Builder répertoire problème !!
[C] retourner un tableau de string[C] Remplir un tableau 2 dimensions avec un fichier
Renvoyer l'adresse d'un tableau en C[C] random sur un enum
Plus de sujets relatifs à : [C] Aide pour petit exo


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR