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 :

Aide sur programme C++


Sujet :

C++

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2015
    Messages : 12
    Points : 6
    Points
    6
    Par défaut Aide sur programme C++
    Bonsoir, un de mes exercices et de créer deux matrices de L lignes et C colonnes, les affichées puis les multipliés si possible,
    Je ne vois pas vraiment d'erreur dans mon code mais quand je lance la console sa plante complétement, j'aimerai bien avoir un peu d'aide pour comprendre
    où le code est faux svp.


    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
     
    #include <iostream>
    #include <conio.h>
    using namespace std;
     
    int main()
    {
    	const int nMax = 1000;
    	char Matrice1[nMax][nMax];
    	char Matrice2[nMax][nMax];
    	char Matrice3[nMax][nMax];
    	int l1, l2, c1, c2, l3, c3;
    	int valeur;
    	int valeurfinal = 0;
     
    	//rentrer la premiere matrice
    	cout << "Rentrez le nombre de ligne sur votre matrice n°1" << endl;
    	cin >> l1;
    	cout << "Rentrez le nombre de colonne sur votre matrice n°1" << endl;
    	cin >> c1;
    	system("cls");
    	cout << "Entrez les valeurs de votre matrice ligne puis colonne\n" << endl;
    	for (int i = 0; i < l1; i++)
    	{
    		for (int j = 0; j < c1; j++)
    		{
    			cin >> valeur;
    			Matrice1[i][j] = valeur;
    			std::cout << "[" << Matrice1[i][j] << "]";
    		}
    		cout << "\n";
    	}
    	cout << "\n";
    	//rentrer la seconde matrice
    	cout << "Rentrez le nombre de ligne sur votre matrice n°2" << endl;
    	cin >> l2;
    	cout << "Rentrez le nombre de colonne sur votre matrice n°2" << endl;
    	cin >> c2;
    	system("cls");
    	cout << "Entrez les valeurs de votre matrice ligne puis colonne\n" << endl;
    	for (int i = 0; i < l2; i++)
    	{
    		for (int j = 0; j < c2; j++)
    		{
    			cin >> valeur;
    			Matrice2[i][j] = valeur;
    			std::cout << "[" << Matrice2[i][j] << "]";
    		}
    		cout << endl;
    	}
    	system("cls");
    	// comparé ligne et colonne des deux matrices pour savoir si elles sont multipliable
    	if (c1 == l2)
    	{
    		l3 = l2;
    		c3 = c1;
    		cout << "Voici votre matrice n°3 :\n";
    		for (int i = 0; i < l3; i++)
    		{
    			for (int j = 0; j < c3; j++)
    			{
    				for (int k = 0; k < l2; k++)
    				{
    					valeurfinal = valeurfinal + ((Matrice2[i][j])*(Matrice1[i][j]));
    				}
    				Matrice3[i][j] = valeurfinal;
    				std::cout << "[" << Matrice3[i][j] << "]";
    			}
    			cout << endl;
    		}
    	}
    	else
    	{
    		cout << "Vos deux matrices ne sont pas multipliables car il n'y a autant de ligne dans la matrice 1 que de colonne dans la matrice 2" << endl;
    	}
    	_getch();
    return 0;
    }

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2015
    Messages : 12
    Points : 6
    Points
    6
    Par défaut petite erreur
    petite erreur pour les matrices ^^ c'est bien des int et non des char, mais le bug reste encore...

  3. #3
    Expert confirmé Avatar de ed73170
    Homme Profil pro
    Développeur indépendant
    Inscrit en
    Mai 2009
    Messages
    765
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur indépendant

    Informations forums :
    Inscription : Mai 2009
    Messages : 765
    Points : 5 522
    Points
    5 522
    Par défaut
    Moi je chercherais le problème du coté de la définition des matrices, tu déclares 3 matrices de 1 million d'entiers chacune (1000 * 1000) et tu les places dans la stack vu que ce sont des variables locales. N'y aurait-il pas un souci du genre stack overflow ?

    Tu dois dimensionner tes matrices dynamiquement après avoir saisi leur taille. Sinon tu risques fort d'avoir une mauvaise note à ton exercice

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2015
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    C'est vrai que j'ai mit beaucoup, je l'ai réduit à 10 pour tester.
    Voici le message d'erreur :

    Unhandled exception at 0x00D970E7 in Exercice restant 7.exe: 0xC00000FD: Stack overflow (parameters: 0x00000000, 0x00222000).
    sur visualstudio

    Alors que a la moitié du code quand je lançais sa marchait, et maintenant sa marche plus ><


    De plus tu me dis : Tu dois dimensionner tes matrices dynamiquement après avoir saisi leur taille.

    Peut tu m'expliquer stp, je suis encore en apprentissage et je comprend pas ce que tu appelle Dynamiquement

    En tout cas merci de ta réponse

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2015
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    J'ai résolu mon problème c'etait bien un debordement de la pile ! Merci pour ton aide

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

Discussions similaires

  1. Aide sur programme Pendule
    Par bencrash93 dans le forum GUI
    Réponses: 3
    Dernier message: 25/05/2013, 15h49
  2. Aide sur programme delete
    Par fabius36 dans le forum AS/400
    Réponses: 2
    Dernier message: 07/05/2010, 22h49
  3. aide sur programmation shell
    Par devhafid dans le forum Linux
    Réponses: 3
    Dernier message: 27/01/2010, 15h50
  4. Demande d'aide sur "programmation d'un IDS en Java"
    Par Libre_ar2009 dans le forum Général Java
    Réponses: 0
    Dernier message: 04/05/2009, 16h08
  5. besoin d'aide sur programme en sql 3
    Par abdel54 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 02/12/2005, 09h19

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