我編碼了一個mpi矩陣多用戶程序,它使用scanf("%d", &size)
,指定了矩陣大小,然後我定義了int matrix[size*size]
,但是當我遵守它時,它報告矩陣未申報。請告訴我爲什麼,或者我的問題是什麼!MPI矩陣多用途編譯錯誤:未聲明代碼
據愛德的建議下,我改變了矩陣定義如果(身份識別碼== 0)塊,但得到了同樣的犯錯!現在我發佈我的代碼,請幫我找出我犯的錯誤!謝謝!
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");
如何重新格式化您的代碼? – 2009-04-15 14:06:15
呵呵,我試過了,但佈局好像不行! 順便說一句,我已經解決了這個問題!我嘗試了一個#define MAX_SIZE 500,然後我只使用數組的一部分^ u^ – Johnson 2009-04-16 08:14:40