IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Tableaux 2 dimensions


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 7
    Par défaut Tableaux 2 dimensions
    Bonsoir, j'aimerai écrire un programme C qui rechercherait un entier dans un tableau d'entiers de dimension 2 (càd n*n quoi^^)dans lequel les nb sont rangés dans l'ordre croissant en ligne et en colonne, pour l'algo, j'ai pensé prendre la case du milieu de la dernière colonne du tableau et d'utiliser la méthode "diviser pour régner" pour determiner si l'entier recherché est dans la moitié supérieure ou inférieure de mon tableau.
    J'élimine ainsi les lignes au fur et à mesure et au final, j'applique à nouveau "diviser pour régner" sur la ligne isolée.

    L'algo me semble bon et j'aimerai justement le vérifier en écrivant un programme C correspondant, et je voudrais savoir comment faire pour "sélectionner tout une partie d'un tableau de dimension 2"...
    je ne sais pas si c'est assez clair ^_^'...merci pour les réponses!

    Petite info : Je dois obligatoirement utiliser "diviser pour régner"...

  2. #2
    Expert confirmé

    Avatar de snake264
    Homme Profil pro
    Datascientist chez Leboncoin
    Inscrit en
    Novembre 2006
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Datascientist chez Leboncoin
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 914
    Par défaut
    Propose nous ta version écrite de ton algo écrit en C et on dira si c'est bon ou non

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 7
    Par défaut
    hum...je tiens à prévenir que le programme est trèès tordu...^^'..et qu'il est sans doute aussi bourré d'erreur...-_-'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
        #include <stdio.h>
        #include <stdlib.h>
     
       typedef struct couple {
               int x;
               int y;
               }Couple;
     
    Couple rechercherX (int nb_colonnes, int nb_lignes, int x, int tab[][nb_lignes], int* d, int* f){
               int  i, j, m;
     
               Couple position;
               position.x=0;
               position.y=0; 
     
               if ((nb_lignes==1)&&(nb_colonnes==1)){
                  if (tab[0][0]==x){
                     position.x=1;
                     position.y=1;
                     return position;
                  }
               }
     
               if ((nb_lignes!=1)&&(nb_colonnes!=1)){
                   i=nb_colonnes;
                   j=nb_lignes/2;
     
                   if (tab[i][j]==x){
                     position.x=i;
                     position.y=j;
                     return position;
                   }else{
                         if (tab [i][j]>x){
                            rechercherX (nb_colonnes, j, x, tab, *(tab), *(tab+(nb_colonnes*j)));
                         }else{
                            rechercherX (nb_colonnes, nb_lignes-j, x, tab, *(tab+(j*nb_colonnes)+1), *(tab+(nb_colonnes*nb_colonnes)));
                         }
                    }
                 }
     
                if (nb_lignes==1){
                  m=nb_colonnes/2;
     
                  if (tab [m][j]==x){
                     position.x=m;
                     position.y=j;
                     return position;
                  }else{
                        if (tab [m][j]<x){
    		               rechercherX (nb_colonnes-m-1, 1, x, tab, *(tab+(j*nb_colonnes+m+1)), *(tab+(nb_colonnes*j)));
                        }else{                   
                           rechercherX (m-1, 1, x, tab, *(tab+(j*nb_colonnes)+1), *(tab+(j*nb_colonnes+m)));
                        }                     
                  }
                }
     
    	      return position;
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 09/03/2006, 17h48
  2. [Tableaux] mémoriser un tableaux à n dimension
    Par Benat64 dans le forum Langage
    Réponses: 4
    Dernier message: 21/02/2006, 16h43
  3. [Tableaux] Gerer des tableaux à deux dimensions
    Par FrankOVD dans le forum Langage
    Réponses: 2
    Dernier message: 02/12/2005, 15h20
  4. Tableaux à plusieurs dimensions
    Par Diabolik dans le forum Assembleur
    Réponses: 3
    Dernier message: 08/12/2003, 12h15
  5. [langage] erreurs utilisation tableaux 2 dimensions
    Par drosof dans le forum Langage
    Réponses: 11
    Dernier message: 01/07/2003, 11h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo