Determinant d'une matrice c++

Fermé
absel1992 Messages postés 2 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 5 mars 2012 - 5 mars 2012 à 22:17
absel1992 Messages postés 2 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 5 mars 2012 - 5 mars 2012 à 22:19
Bonjour,
j'ai un tp a faire : celui du determinant d'une matrice ; on doit le realiser avec les threads donc j'ai fait une fonction reccursive qui fait l appel a une fonction matriceres mais le probleme se presente au niveau des threads je voulais faire l appel a la fonction du determinant (reccursive) mais elle doit etre void et avoir void comme parametre voici mon programme : help please

#include<stdio.h>
#include <pthread.h>
#define DIM 10
int d;
typedef struct{
int m[10][10];int dim;} param;

void matriceres(int msource[10][10],int mdest[10][10],int dim,int ligasup)
{
int l,c,ld=0;
for (l=0;l<dim;l++) if (l!=ligasup)
{
for (c=1;c<dim;c++) mdest[ld][c-1]=msource[l][c];
ld++;
}
}

void *determinant(void *parametre)
{
int sous_m[10][10];
int l,signe=1;
float det=0;
param *p = (param*) parametre;
if (p->dim==1)
d=p->m[0][0];
for(l=0;l<p->dim;l++)
{
matriceres(p->m,sous_m,p->dim,l);
det+=signe*p->m[l][0]*determinant(sous_m,p->dim-1);
signe=-signe;
}

}

int main(void)
{
int i,j,n,det;
int m[10][10];
pthread_t t[10];
param p[10];
printf("donner la dim de la matrice n");
scanf("%d", &n);
//lecture de la matrice m
for (i=0; i<n; i++)
for (j=0; j<n; j++)
{
printf("p->m(%d,%d) = ", i,j);
scanf("%d", &m[i][j]);
}
//création des thread
for (i = 0; i<n; i++)
{

pthread_create(&t[i], NULL, determinant, &p[i]);
}

for (i = 0; i<n; i++)
pthread_join(t[i], NULL);

printf(" determinant =%d",det);
}

1 réponse

absel1992 Messages postés 2 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 5 mars 2012
5 mars 2012 à 22:19
plutot bonsoir*
0