bonsoir, je suis sur un petit programme de maths qui doit me faire des calculs de matrice. mon programme avançais bien (j'utilisais jusqu'à présent des int dans mes matrice), mais je ne comprend pas pourquoi mon programme ne marche pas lorsque je passe en double
voila mon code pour les matrice "int" :
je vois bien a l'ecran : 7 7
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 #include <stdio.h> #include <stdlib.h> typedef struct Matrice Matrice; struct Matrice { int **adresse; int lin; int col; }; int main() { Matrice Mresultat = {NULL,2,2}; int lin = 2; int col = 2; //matrice 2 2 int i; Mresultat.adresse = malloc(lin * sizeof(*(Mresultat.adresse)));//reserve espace pour pointeur ligne matrice // creation d'un tableau de "col" cases à chaque ligne de la matrice for(i = 0; i < lin; i++) { (Mresultat.adresse)[i] = malloc(col * sizeof(int)); } // afficher la matrice int j; for (i = 0; i < Mresultat.lin; i++) { for (j = 0; j < Mresultat.col; j++) { (Mresultat.adresse)[i][j] = 7; printf("%d\t", (Mresultat.adresse)[i][j]); } printf("\n"); } printf("\n"); return 0; }
7 7
et le presque le meme pour des "double" :
je vois a l'écran : 0,00000 0,00000
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 #include <stdio.h> #include <stdlib.h> typedef struct Matrice Matrice; struct Matrice { int **adresse; int lin; int col; }; int main() { Matrice Mresultat = {NULL,2,2}; int lin = 2; int col = 2; //matrice 2 2 int i; Mresultat.adresse = malloc(lin * sizeof(*(Mresultat.adresse)));//reserve espace pour pointeur ligne matrice // creation d'un tableau de "col" cases à chaque ligne de la matrice for(i = 0; i < lin; i++) { (Mresultat.adresse)[i] = malloc(col * sizeof(double)); } // afficher la matrice int j; for (i = 0; i < Mresultat.lin; i++) { for (j = 0; j < Mresultat.col; j++) { (Mresultat.adresse)[i][j] = 7.5842; printf("%f\t", (Mresultat.adresse)[i][j]); } printf("\n"); } printf("\n"); return 0; }
0,00000 0,00000
je n'es pas mis les procédures de destruction des matrice une fois finie mais ce n'est pas elle qui plante le tout.
savez-vous pourquoi mon code ne marche pas pour les "double" ?
merci d'avance
Partager