J'ai codé un programme de multification de matrice mpi, qui utilise scanf("%d", &size)
, désigne la taille de la matrice, puis j'ai défini int matrix[size*size]
, mais quand je l'ai respecté, il a indiqué que la matrice n'est pas déclarée. S'il vous plaît dites-moi pourquoi, ou quel est mon problème!compilateur matriciel MPI compile err: non déclaré avec le code
Selon la suggestion d'Ed, j'ai changé la définition de la matrice en bloc if (myid == 0), mais j'ai eu la même erreur! Maintenant, je poste mon code, s'il vous plaît aidez-moi à savoir où j'ai fait des erreurs! Je vous remercie!
int size;
int main(int argc, char* argv[]) {
int myid, numprocs;
int *p;
MPI_Status status;
int i,j,k;
MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD,&myid);
MPI_Comm_size(MPI_COMM_WORLD, &numprocs);
if(myid == 0)
{
scanf("%d", &size);
int matrix1[size*size];
int matrix2[size*size];
int matrix3[size*size];
int section = size/numprocs;
int tail = size % numprocs;
srand((unsigned)time(NULL));
for(i=0; i<size; i++)
for(j=0; j<size; j++)
{
matrix1[i*size+j]=rand()%9;
matrix3[i*size+j]= 0;
matrix2[i*size+j]=rand()%9;
}
printf("Matrix1 is: \n");
for(i=0; i<size; i++)
{
for(j=0; j<size; j++)
{
printf("%3d", matrix1[i*size+j]);
}
printf("\n");
}
printf("\n");
printf("Matrix2 is: \n");
comment reformater votre code? –
hehe, j'ai essayé, mais la mise en page ne semble pas fonctionner! BTW, j'ai résolu le problème! J'ai essayé un #define MAX_SIZE 500, alors j'utilise juste une partie du tableau^u^ – Johnson