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 d'initialisation d'une matrice ?


Sujet :

C

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 33
    Points : 20
    Points
    20
    Par défaut Problème d'initialisation d'une matrice ?
    Bonjour,
    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
    #include <stdio.h>
    typedef int matrice[3][3];   //définition du type matrice 3*3
     
    main()
    {
        matrice M,M1,M2,M3;
        int D,D1,D2,D3;
        M={13,-8,-3,-8,10,-1,-3,-1,11};  //ligne 8 
        M1={20,-8,-3,-5,10,-1,0,-1,11};
        M2={13,20,-3,-8,-5,-1,-3,0,11};
        M3={13,-8,20,-8,10,-5,-3,-1,0};
     
        D=M[0][0]*M[1][1]*M[2][2]+  M[0][1]*M[1][2]*M[2][0]+  M[0][2]*M[1][0]*M[2][1]-  M[0][0]*M[1][2]*M[2][1]-  M[0][1]*M[2][1]*M[2][2]-  *M[0][2]*M[1][1]*M[2][0]; //Loi de Sarrus
        printf("\n%d\n",D); //déterminant de la matrice M
     
    }
    et mes messages d'erreurs :

    main.c:8: error: syntax error before '{' token
    main.c: At top level:
    main.c:9: warning: excess elements in scalar initializer
    main.c:9: warning: (near initialization for `M1')
    main.c:9: warning: excess elements in scalar initializer
    main.c:9: warning: (near initialization for `M1')
    main.c:9: warning: excess elements in scalar initializer
    main.c:9: warning: (near initialization for `M1')
    main.c:9: warning: excess elements in scalar initializer
    main.c:9: warning: (near initialization for `M1')
    main.c:9: warning: excess elements in scalar initializer
    main.c:9: warning: (near initialization for `M1')
    main.c:9: warning: excess elements in scalar initializer
    main.c:9: warning: (near initialization for `M1')
    main.c:9: warning: excess elements in scalar initializer
    main.c:9: warning: (near initialization for `M1')
    main.c:9: warning: excess elements in scalar initializer
    main.c:9: warning: (near initialization for `M1')
    main.c:9: warning: data definition has no type or storage class

    (...)

    Merci

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 381
    Points : 41 582
    Points
    41 582
    Par défaut
    Essaie peut-être comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    M={{13,-8,-3}, {-8,10,-1}, {-3,-1,11}};

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 33
    Points : 20
    Points
    20
    Par défaut
    Ce n'est pas mieux :

    Messages d'erreurs :
    ---------
    main.c:8: error: syntax error before '{' token
    main.c: At top level:
    main.c:9: warning: braces around scalar initializer
    main.c:9: warning: (near initialization for `M1')
    main.c:9: warning: excess elements in scalar initializer
    main.c:9: warning: (near initialization for `M1')
    main.c:9: warning: excess elements in scalar initializer
    main.c:9: warning: (near initialization for `M1')
    main.c:9: warning: braces around scalar initializer
    main.c:9: warning: (near initialization for `M1')
    main.c:9: warning: excess elements in scalar initializer
    main.c:9: warning: (near initialization for `M1')
    main.c:9: warning: excess elements in scalar initializer
    main.c:9: warning: (near initialization for `M1')
    main.c:9: warning: excess elements in scalar initializer
    main.c:9: warning: (near initialization for `M1')
    main.c:9: warning: braces around scalar initializer
    main.c:9: warning: (near initialization for `M1')
    main.c:9: warning: excess elements in scalar initializer
    main.c:9: warning: (near initialization for `M1')
    main.c:9: warning: excess elements in scalar initializer
    main.c:9: warning: (near initialization for `M1')
    main.c:9: warning: excess elements in scalar initializer
    main.c:9: warning: (near initialization for `M1')
    main.c:9: warning: data definition has no type or storage class

    (..)

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 33
    Points : 20
    Points
    20
    Par défaut
    C'est fait le même message d'erreur

  5. #5
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 381
    Points : 41 582
    Points
    41 582
    Par défaut
    Au fait: Ce qui me trouble, c'est qu'ils parlent d'initialiseurs alors que ce n'est pas une initialisation de matrice, mais une affectation.

    D'ailleurs, à ma connaissance, les tableaux et matrices ne sont pas affectables. Tu devrais essayer en intégrant les valeurs à la déclaration, ainsi tu auras une vraie initialisation et ça devrait marcher.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 33
    Points : 20
    Points
    20
    Par défaut
    Et oui, il faut initialiser et non affecter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        matrice M={13,-8,-3,-8,10,-1,-3,-1,11};
        matrice M1={20,-8,-3,-5,10,-1,0,-1,11};
        matrice M2={13,20,-3,-8,-5,-1,-3,0,11};
        matrice M3={13,-8,20,-8,10,-5,-3,-1,0}
    MERCI !

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

Discussions similaires

  1. Problème d'initialisation d'une propriété
    Par choas dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 21/10/2008, 15h53
  2. Problème d'affichage d'une matrice
    Par zicoadis dans le forum Débuter
    Réponses: 4
    Dernier message: 26/01/2008, 17h36
  3. Initialisation d'une matrice
    Par brindacier dans le forum MATLAB
    Réponses: 3
    Dernier message: 06/03/2007, 19h03
  4. déclaration et initialisation d'une matrice
    Par Gébix dans le forum C++
    Réponses: 5
    Dernier message: 16/02/2006, 01h22
  5. Initialisation d'une matrice carrée (malloc...)
    Par kilinette dans le forum C
    Réponses: 4
    Dernier message: 17/10/2005, 19h57

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