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 avec les matrice leur dimension et leur utilisation dans une fonction


Sujet :

C++

  1. #1
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 163
    Points : 76
    Points
    76
    Par défaut probléme avec les matrice leur dimension et leur utilisation dans une fonction
    bonjour
    je voulez essayé ce code mais il marche pas
    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
     
    #include <iostream> 
    using namespace std;
    #include<string>
    #include <cstring>
    #include <math.h>
    #include <stdio.h>
     
    void saisir(int x,int n, int t[x][n]) 
    {
        int i;
        for(i=0; i<x; i++)
         for(int j=0; j<n; j++)
        {
            cout<<"Tapez la valeur numero "<<i<<" : ";
            cin >> t[i][j];
        }
    } 
     
    int main() 
    {
     
    int n,deuxpuisn;
    cout <<"données le nombre de variables: ";
    cin >> n;
    deuxpuisn=pow(2,n); ;
    cout <<"deux puissance n est: "<< deuxpuisn<<endl;
    int a[deuxpuisn][n];
     
    saisir(deuxpuisn,n,a);
    return 0;
    et il m'affiche des érreurs je ne sais comment les résoudre voila la liste des erreurs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    crypto.cpp:44: erreur: «x» was not declared in this scope
    crypto.cpp:44: erreur: «n» was not declared in this scope
    crypto.cpp: In function «void saisir(int, int)»:
    crypto.cpp:51: erreur: «t» was not declared in this scope
    crypto.cpp: In function «int main()»:
    crypto.cpp:44: erreur: too many arguments to function «void saisir(int, int)»
    crypto.cpp:65: erreur: à ce point dans le fichier
    mais par contre quand je déclare les dimmension de tableau static il marche trés bien (comme l'exemple si dessous) et moi je voulez que ma matrice qu'elle soit dinamyque (i.e la taille de la matrcie sont des variable)
    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
     
    #include <iostream>
    using namespace std;
     
    const int n=4;
     
    void saisir(int t[n]) 
    {
        int i;
        for(i=0; i<n; i++) 
        {
            cout<<"Tapez la valeur numero "<<i<<" : ";
            cin >> t[i];
        }
    } 
     
    void affiche(int t[n]) 
    {
        int i;
        for(i=0; i<n; i++) cout<<"La valeur numero "<<i<<" est : "<<t[i]<<endl;
    }
     
    int main()
    {
        int a[n];
        saisir(a);
        affiche(a);
        return 0;
    }

  2. #2
    Membre confirmé
    Inscrit en
    Juillet 2005
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 512
    Points : 641
    Points
    641
    Par défaut
    Il te faut revoir l'utilisation des tableaux
    ou bien utiliser les vector puisque tu est en C++


    On ne peut pas utiliser des variables pour initialiser la taille d'un tableau.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void saisir(int x,int n, int t[x][n])
    IDEM Pour le passer comme paramètre

  3. #3
    Membre à l'essai
    Développeur informatique
    Inscrit en
    Février 2009
    Messages
    15
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2009
    Messages : 15
    Points : 15
    Points
    15
    Par défaut
    Salut,

    Ce qu'il faut que tu donnes en paramètre est l'adresse du tableau sur lequel tu veux travailler.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    void saisir(int x,int n, int ** t)  {
      // ...
    }
    ou utilisé les vecteurs comme dit lucien63

Discussions similaires

  1. [XL-2010] Problème avec la méthode find d'un objet Range dans une zone filtrée
    Par stargates01 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 28/02/2014, 23h27
  2. Réponses: 1
    Dernier message: 10/02/2011, 15h32
  3. Réponses: 3
    Dernier message: 01/06/2009, 16h57
  4. Réponses: 4
    Dernier message: 02/05/2009, 17h56
  5. Problèmes avec les matrices ?
    Par faroukus dans le forum OpenCV
    Réponses: 3
    Dernier message: 11/08/2008, 17h50

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