p
u
b
l
i
c
i
t
é
publicité
  1. #1
    Futur Membre du Club
    Inscrit en
    juillet 2007
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : juillet 2007
    Messages : 41
    Points : 15
    Points
    15

    Par défaut Remplissage d'une matrice en C++

    Salut tout le monde
    je suis encore à l'étape d'apprentissage du C++, et j'ai fait ce petit programme qui compile sans erreurs mais il s'arrête au cours de son execution :

    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
    #include<iostream.h>
    #include<malloc.h>
    #include<stdlib.h>
    void main()
    {
    	int N,M;
    	cout<<"Donner le nombre de lignes"<<endl;
    	cin>>N;
    	cout<<"Donnez le nombre de colonnes"<<endl;
    	cin>>M;
    	char **T;
    	T=(char**) malloc(N*M*sizeof(char));
    	for(int i=0;i<N;i++)
    	{
    		for (int j=0;j<M;j++)
    		{
    			cout<<"T["<<i+1<<"]["<<j+1<<"]=";
    			cin>>*(*(T+i)+j);
    		}
    	}
    	free(T);
    	system ("pause");
    }
    Peux-je avoir une correction à ma solution ? Je voulais aussi savoir s'il est possible de remplir le tableau sans demander le nombre de lignes et de colonnes d'avance. Merci

  2. #2
    Membre émérite
    Avatar de Florian Goo
    Profil pro
    Inscrit en
    septembre 2008
    Messages
    680
    Détails du profil
    Informations personnelles :
    Âge : 29
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : septembre 2008
    Messages : 680
    Points : 802
    Points
    802

    Par défaut

    Bonjour,

    Utilise Boost.MultiArray, tu te prendras moins la tête et tu pourras faire plus de choses http://www.boost.org/doc/libs/1_36_0...doc/index.html

    Oublie aussi malloc et free, ça c'est du C.
    Cours : Initiation à CMake
    Projet : Scalpel, bibliothèque d'analyse de code source C++ (développement en cours)
    Ce message a été tapé avec un clavier en disposition bépo.

  3. #3
    Futur Membre du Club
    Inscrit en
    juillet 2007
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : juillet 2007
    Messages : 41
    Points : 15
    Points
    15

    Par défaut

    Citation Envoyé par Florian Goo Voir le message
    Bonjour,

    Utilise Boost.MultiArray, tu te prendras moins la tête et tu pourras faire plus de choses http://www.boost.org/doc/libs/1_36_0...doc/index.html

    Oublie aussi malloc et free, ça c'est du C.
    Salut Florian, je te remerci pour l'info mais c'est quoi ce Boost? à quoi ça sert? Et je remercie aussi pour le cours mais ya pas un autre en français car chui pas bon en anglais.
    aussi voila j'ai essayé avec New, delete mais domage le prob pérciste encore:
    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
    #include<iostream.h> 
    #include<stdlib.h> 
    void main() 
    { 
       int N,M; 
       cout<<"Donnez le nombre de lignes"<<endl; 
       cin>>N; 
       cout<<"Donnez le nombre de colonnes"<<endl; 
       cin>>M; 
       char **T; 
       T = new char* [N*M] ; 
       for(int i=0;i<N;i++) 
       { 
          for (int j=0;j<M;j++) 
          { 
             cout<<"T["<<i+1<<"]["<<j+1<<"]="; 
             cin>>*(*(T+i)+j); 
          } 
       } 
       delete[] T; 
       system ("pause"); 
    }

  4. #4
    Expert Confirmé Sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    août 2003
    Messages
    4 888
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : août 2003
    Messages : 4 888
    Points : 8 346
    Points
    8 346

    Par défaut

    Si c'est un exo, la correction est dans la FAQ.
    Sinon, préfère en effet utiliser des classes toutes faites comme p.ex. boost.multi_array (pour les tableaux 2D) ou boost.ublas (pour les maths)
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  5. #5
    Alp
    Alp est déconnecté
    Expert Confirmé Sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    juin 2005
    Messages
    8 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : juin 2005
    Messages : 8 583
    Points : 11 409
    Points
    11 409

    Par défaut

    Salut,

    Je te conseille de commencer par relire tes cours de C++, surtout la partie sur les pointeurs et l'allocation dynamique.
    Siinon, tu as toujours le cours de Bruce Eckel disponible en français sur Developpez : http://bruce-eckel.developpez.com/li...on/ticpp2vol1/

Discussions similaires

  1. [IML] Remplissage d'une matrice
    Par ingstat dans le forum SAS IML
    Réponses: 2
    Dernier message: 23/03/2009, 19h02
  2. remplissage d'une matrice
    Par yasinfo dans le forum JBuilder
    Réponses: 2
    Dernier message: 30/12/2008, 23h25
  3. Remplissage d'une matrice
    Par vg-matrix dans le forum C
    Réponses: 5
    Dernier message: 28/05/2008, 23h26
  4. Algorithme de remplissage d'une matrice
    Par bettiboo94 dans le forum MATLAB
    Réponses: 1
    Dernier message: 18/05/2008, 05h53
  5. [Débutant] Remplissage d'une matrice
    Par Keldou dans le forum Octave
    Réponses: 2
    Dernier message: 24/04/2007, 19h54

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