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 :

Retourner un tableau a deux dimensions


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 126
    Par défaut Retourner un tableau a deux dimensions
    Bonjour à tous,
    Alors me voilà suite à un petit problème ! J'aimerais réaliser une intelligence artificielle pour mon projet (bataille navale) pour cela si je touche un bateau j'aimerais créer un tableau a deux dimensions contenant les coordonnées des points entourant le point touché !
    Pour cela j'ai déjà écrit un morceau de code mais je ne suis vraiment pas sur... (Pour tester ici j'ai choisi de prendre le point G5)

    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
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
     
    #include <stdio.h>
    #include <stdlib.h>
     
     
    int calcul_IA(int ord, int abs)
    {
        int i,j;
        int tab[2][4]=
            {
                0
            }
            ;// tableau des coordonnee abscisse / ordonnee initialisé a 0
     
        printf("Le point de coordonnee : %c %c \n",ord,abs);
     
     
        for(i=0;i<4;i++)
        {
            j=0;
            if(i==0 && ord !=0)
            {
                tab[i][j]=abs;
                j++;
                tab[i][j]=ord+1;
            }
            if(i==0 && ord == 0)
            {
                tab[i][j]=abs;
                j++;
                tab[i][j]=11 ;
            }
            if(i==1)
            {
                tab[i][j]=abs+1;
                j++;
                tab[i][j]=ord;
            }
            if(i==2)
            {
                tab[i][j]=abs;
                j++;
                tab[i][j]=ord-1;
            }
            if(i==3)
            {
                tab[i][j]=abs-1;
                j++;
                tab[i][j]=ord;
            }
        }
     
        j=0;
        for(i=0;i<4;i++)
        {
            if(j==0)
            {
                printf("i=%d j=%d => tab : %c \n",i,j,tab[i][j]);
            }
        }
        printf("\n");
        j++;
        for(i=0;i<4;i++)
        {
            if(j==1)
            {
                printf("i=%d j=%d => tab : %c \n",i,j,tab[i][j]);
            }
        }
     
        return tab[2][4];
    }
     
    int main()
    {
    int i,j;
    int tab[2][4];
    int ord,abs;
    ord='5';
    abs='G';
     
    tab[2][4] = calcul_IA(abs,ord);
    printf("\n\n");
     
    for(i=0;i<4;i++)
        {
            for(j=0;j<2;j++)
            {
                printf("i=%d j=%d => tab : %d \n",i,j,tab[i][j]);
            }
        }
    	return 0;
    }
    Merci d'avance pour votre aide ^^

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    relis vite tes cours ou tes manuels !!!!!!!!!

    Une fonction ne retourne pas un tableau (ou alors alloue dynamiquement)

    Que viennent faire toutes ces boucles ??

  3. #3
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Citation Envoyé par masterix59
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    int calcul_IA(int ord, int abs)
    {
        int tab[2][4];
     
        ...
     
        return tab[2][4];
    }
    Ce n’est pas une fonction qui retourne un tableau mais un entier : tab[2][4] (tab étant le tableau). Mais cet élément est en dehors du tableau (si t est un tableau de 10 entiers, les éléments de t vont de t[0] à t[9], cette règle s’applique à n’importe quel type de tableau).

    Je n’ai pas eu le temps de décortiquer tes boucles.

    A part ça, tu ne peux retourner un tableau, mais tu peux retourner un pointeur vers un élément du tableau (ce qui te permettra d’accéder à tout le tableau). Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    int t[100]; /* Une variable globale */
     
    int * get_t(void)
    {
        return t; /* Retourne l’adresse du premier element de t*/
    }

  4. #4
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Pour travailler avec les tableaux, autant montrer un exemple sain tout de suite:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    void traiter_tableau(int *tab, size_t longueur)
    {
        if (tab != NULL && longueur > 0)
        {
            /* -tc- Traiter les donnees du tableau via l'adresse de son
                1er element */
        }
    }
    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 126
    Par défaut
    J'aurais du m'en douter
    Merci beaucoup pour vos explications qui m'ont bien servis !
    Merci à tous !

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/03/2006, 17h25
  2. Un string dans un tableau de deux dimensions...
    Par FinalSpirit dans le forum C++
    Réponses: 5
    Dernier message: 15/01/2006, 14h29
  3. [PERL] Trier un tableau a deux dimensions
    Par piregwan dans le forum Langage
    Réponses: 3
    Dernier message: 26/12/2005, 22h29
  4. Réponses: 6
    Dernier message: 26/11/2005, 19h55
  5. Réponses: 13
    Dernier message: 13/10/2005, 16h03

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