我编码了一个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