学习型 ASP/PHP/ASP.NET 主机 30元/年全能 ASP/PHP/ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
发新话题
打印

[求助]学校要求做的求矩阵运算的题目

[求助]学校要求做的求矩阵运算的题目

学校要求做一道关于矩阵运算的题目,计算两个矩阵的和与积(要求用malloc函数来做)。我写完之后编译通过,可是运行时在打印输入的矩阵时就发生错误。百思不得其解,求哪位高手指点指点。(调试时显示的错误为:“juzhenjia+.exe 中的 0x00411555 处未处理的异常: 0xC0000005: 读取位置 0xfdfdfdfd 时发生访问冲突”)(发生错误的地方已用红色表示)
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
void main()
{
int i,j,r1,c1;
int **p1;
int **p2;
int **p3;
//input row and column
printf("请输入两个矩阵的行数:");
scanf("%d",&r1);
printf("请输入两个矩阵的列数:");
scanf("%d",&c1);

//input 1
p1=(int **)malloc(r1*sizeof(int *));
for(i=0;i<r1;i++)
{
p1[i]=(int *)malloc(c1*sizeof(int));
}

printf("请输入第一个矩阵(%d*%d):\n",r1,c1);
for (i=0;i<r1;i++)
{
for (j=0;j<c1;j++)
{
scanf("%d",&p1[i][j]);
}
}
printf("第一个矩阵是:\n");
for (i=0;i<r1;i++);
{
for (j=0;j<c1;j++)
{
printf("%5d",p1[i][j]);
}
printf("\n");
}

//input 2
p2=(int **)malloc(r1*sizeof(int *));
for(i=0;i<r1;i++)
{
p2[i]=(int *)malloc(c1*sizeof(int));
}

printf("请输入第二个矩阵(%d*%d):\n",r1,c1);
for (i=0;i<r1;i++)
{
for (j=0;j<c1;j++)
{
scanf("%d",&p2[i][j]);
}
}
printf("第二个矩阵是:\n");
for (i=0;i<r1;i++);
{
for (j=0;j<c1;j++)
{
printf("%5d",p2[i][j]);
}
printf("\n");
}

//calculate
p3=(int **)malloc(r1*sizeof(int *));
for(i=0;i<r1;i++)
{
p3[i]=(int *)malloc(c1*sizeof(int));
}

for (i=0;i<r1;i++)
{
for (j=0;j<c1;j++)
{
p3[i][j]=p1[i][j]+p2[i][j];
}
}

//output
for (i=0;i<r1;i++)
{
for (j=0;j<c1;j++)
{
printf("%5d",p3[i][j]);
}
}
}

TOP

发新话题