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 :

Problème de type ?


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 4
    Par défaut Problème de type ?
    Bonjour à tous ! Je suis nouveau sur votre forum (même si je le fréquente assez souvent), et je voudrai vous présenter mon probleme ( j'ai un niveau assez débutant en langage C... )

    Je crée un type : typedef short Entier[NC + 1];

    j'ai une fonction qui détermine si deux nombres représentés en "Entier" qui détermine s'ils sont de même signe (premiere case du tableau identique):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    int meme_signe (Entier E1[NC+1] , Entier E2[NC+1]) {
     
        if(E1[ 0]!=0 && E2[0]!=0) { return 1; }
        if(E1[0]==0 && E2[0]==0) {return 1;}
     
        return 0;
     
    }
    Et voici mon main :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    int main(void) {
     
        Entier E={1,2,25,50,78,3};
        Entier A={1,5,56,23,1,35};
        int a;
        int i;
     
       if ( meme_signe(E,A)== 1 ) {
             printf("Les deux entiers sont de meme signe\n");
     
      system("pause");  
        }
    /!\ Et à la compilation j'ai cette erreur :
    cannot convert `short int*' to `short int (*)[7]' for argument `1' to `int meme_signe(short int (*)[7], short int (*)[7])'

    Et je n'arrive pas à la résoudre, donc si vous pouvez m'aider, ... ça m'aiderai bien !
    Merci à tous !

  2. #2
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par Wam31
    Je crée un type : typedef short Entier[NC + 1];
    <...>
    /!\ Et à la compilation j'ai cette erreur :
    cannot convert `short int*' to `short int (*)[7]' for argument `1' to `int meme_signe(short int (*)[7], short int (*)[7])'
    Quand on définit un type, le principe ensuite, c'est de l'utiliser !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    int meme_signe (Entier E1 , Entier E2) 
    {
        if(E1[ 0]!=0 && E2[0]!=0) { return 1; }
        if(E1[0]==0 && E2[0]==0) {return 1;}
        return 0;
    }
    J'ai l'impression que c'est ça que tu veux :
    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
     
    #include <stdio.h>
     
    #define NC 5
     
    typedef short Entier[NC + 1];
     
    /* j'ai une fonction qui détermine si deux nombres représentés en 
       "Entier" qui détermine s'ils sont de même signe 
       (premiere case du tableau identique) */
    int meme_signe (Entier E1, Entier E2)
    {
       return E1[0] == E2[0];
    }
     
    int main (void)
    {
       Entier E = { 1, 2, 25, 50, 78, 3 };
       Entier A = { 1, 5, 56, 23, 1, 35 };
       if (meme_signe (E, A) == 1)
       {
          printf ("Les deux entiers sont de meme signe\n");
       }
       return 0;
    }

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 4
    Par défaut
    Merci beaucoup !! ça marche !!
    Ceci, je ne comprend pas mon erreur ... !

  4. #4
    Membre Expert Avatar de zooro
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2006
    Messages : 921
    Par défaut
    Citation Envoyé par Wam31
    Ceci, je ne comprend pas mon erreur ... !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    typedef short Entier[NC + 1];
    permet de définir Entier comme un tableau de shorts.

    donc dans E1 est un tableau de tableaux de shorts.

Discussions similaires

  1. [ tinyint et char ] problème de type
    Par shirya dans le forum Installation
    Réponses: 3
    Dernier message: 05/11/2005, 07h08
  2. [debutant] problème avec type à utiliser
    Par mlequim dans le forum Autres SGBD
    Réponses: 2
    Dernier message: 15/07/2005, 16h08
  3. Problème de type chaîne
    Par champijulie dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 12/05/2005, 20h23
  4. Réponses: 4
    Dernier message: 30/01/2005, 14h23
  5. [Sybase] Problème de type sous ASE
    Par Hotchotte dans le forum Sybase
    Réponses: 1
    Dernier message: 18/12/2004, 11h04

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