serial_xp | Un Programmeur a écrit :
> je ne pensais pas que c'était un langage aussi "sensible". Disons qu'il faut chercher pour trouver plus sensible.
> Concernant, le bug, j'ai déjà identifié les lignes responsables mais même en changeant le style de codage, le bug reste le même.
Tu peux les donner (dans la balise adéquate) si tu veux.
|
Voila le code : c'est un simple de multiplication de matrice, qui devra être parallélisé par après.
exercice3.c:
Code :
- #include "exercice3.h"
- void print_matrix(matrice *m)
- {
- if (m == NULL) {
- fprintf(stdout, "Pas de matrice a afficher!n";);
- }
- else
- {
- int i, j;
- for (i=0; i < m->lines; i++)
- {
- fprintf(stdout, "(";);
- for (j=0; j < m->cols; j++)
- {
- fprintf(stdout, " %d ", m->value[i][j]);
- }
- fprintf(stdout, ";)n";);
- }
- }
- }
- matrice* generate_matrix(int lines, int cols)
- {
- srand(time(NULL));
- int i, j;
-
- matrice *m = malloc(sizeof(matrice));
- m->cols = cols;
- m->lines = lines;
- m->value = malloc(sizeof(int)*lines);
- for (i=0; i < lines; i++)
- {
- m->value[i] = malloc(sizeof(int)*cols);
- for (j=0; j < cols; j++)
- {
- m->value[i][j] = rand() % (10);
- }
- }
- return m;
- }
- matrice* multiply_matrix(matrice *m1, matrice *m2)
- {
- if (m1->cols == m2->lines)
- {
- int i, j, k, calcul=m2->lines;
-
- matrice *result = generate_matrix(m1->lines, m2->cols);
- for (i=0; i < result->lines;i++)
- {
- for (j=0; j < result->cols; j++)
- {
- result->value[i][j] = 0;
- for (k=0; k < calcul; k++)
- {
- result->value[i][j] += m1->value[i][k] * m2->value[k][j];
- }
- }
- }
- return result;
- }
- return NULL;
- }
|
exercice3.h:
Code :
- #ifndef EXERCICE_3
- #define EXERCICE_3
- #include <time.h>
- #include <stdio.h>
- #include <stdlib.h>
- struct Matrice{
- int cols;
- int lines;
- int** value;
- };
- typedef struct Matrice matrice;
- void print_matrix(matrice *m);
- matrice* generate_matrix(int cols, int lines);
- matrice* multiply_matrix(matrice *m1, matrice *m2);
- #endif
|
Message édité par serial_xp le 20-10-2012 à 20:35:40
|