passage des int au double
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" :
Code:
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;
} |
je vois bien a l'ecran : 7 7
7 7
et le presque le meme pour des "double" :
Code:
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;
} |
je vois a l'écran : 0,00000 0,00000
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