Bonsoir,
J'ai besoin de votre aide pour mon programme. En effet, lorsque j'appelle ma fonction "creation_matrice_utilisateur()", celle-ci me retourne une matrice initialisée à 0, et non pas un matrice qui contient les valeurs entrées par un utilisateur comme je le voudrais. J'ai eu beau chercher ce qui ne va pas dans mon code, je ne trouve toujours pas, et c'est donc pour ça que je fais appel à vous !
Le problème ne semble pas venir de la fonction affiche_matrice() car j'utilise celle-ci à d'autres endroits et elle fonctionne.
Merci par avance pour votre aide !
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 #include <stdio.h> #include <stdlib.h> #include <malloc.h> #include <time.h> struct matrice_s{ int nb_lignes; int nb_cols; float **matrice; }; void affiche_matrice (struct matrice_s *m){ if (m == NULL){ exit(0); } for (int i = 0; i < m->nb_lignes; i++){ printf("\n"); for (int j = 0; j < m->nb_cols; j++){ printf("%10lf", m->matrice[i][j]); // On affiche la matrice } } printf("\n"); } struct matrice_s *creation_matrice (int nbr_lignes, int nbr_colonnes){ struct matrice_s *mat = malloc(sizeof(struct matrice_s)); // On réserve l'espace de la matrice grâce au malloc mat->nb_lignes = nbr_lignes; mat->nb_cols = nbr_colonnes; mat->matrice = (float **)malloc(mat->nb_lignes*sizeof(float *)); for (int i = 0; i < mat->nb_lignes; i++) mat->matrice[i] = (float *)calloc(mat->nb_cols, sizeof(float)); // On initialise la matrice en mettant toutes ses valeurs à 0 grâce au calloc //affiche_matrice(mat); return mat; } struct matrice_s * creation_matrice_utilisateur (){ int lignes, colonnes, i, j; printf("Nombre de lignes de la matrice : "); scanf("%d", &lignes); // L'utilisateur entre le nombre de lignes de la matrice printf("Nombre de colonnes de la matrice : "); scanf("%d", &colonnes); // L'utilisateur entre le nombre de colonnes de la matrice struct matrice_s *m; m = creation_matrice(lignes, colonnes); // On crée la matrice avec le nombre de lignes et de colonnes entrés par l'utilisateur printf("Veuillez entrer les éléments de la matrice.\n"); for (i = 0; i < lignes; i++){ for (j = 0; j < colonnes; j++){ printf("Entrez la valeur de matrice[%d][%d] : ", i, j); scanf("%lf", &(m->matrice[i][j])); } } return m; } int main() { struct matrice_s *x = creation_matrice_utilisateur(); affiche_matrice(x); return 0; }
Partager