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;
    }
    Merci de votre compréhension

  2. #2
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 59
    Points : 48
    Points
    48
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mais par contre quand je déclare les dimmension de tableau static il marche trés bien
    Ce n'est pas parce que les as déclarées en static (dailleur ce n'est pas le cas) que le code marche mais parce que dans le 2e code la variable 'n' est déclarée en globale.
    Pour passer un tableau à 'n' dimensions en paramètre on précise la valeur de la dernière dimension lord d'un passage en paramètre de fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void saisir(int (*tableau)[4]) /* si int tableau[4][4] dans ton main par exemple */

  3. #3
    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

    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

  4. #4
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void saisir(int x,int n, int t[x][n])
    n'est valide qu'en C99.

    Comme ton code n'est même pas du C, mais du C++ ....
    Publication : Concepts en C

    Mon avatar : Glenn Gould

    --------------------------------------------------------------------------
    Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !

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: 2
    Dernier message: 05/06/2009, 16h08
  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