问题遇到的现象和发生背景 矩阵乘法编码
用代码块功能插入代码,请勿粘贴截图
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>
#define N 100
int main()
{
int m,n,k;
int i,j,p,sum;
int x[N][N]={0};
int y[N][N]={0};
int z[N][N]={0};
printf("请输入第一个矩阵的行数和列数:\n");
scanf("%d %d",&m,&k);
printf("第一个矩阵为:\n");
srand((unsigned)time(NULL));
for (i=0;i<m;i++)
{
for (j=0;j<k;j++)
{
x[i][k]=rand()%100;
printf("%5d ",x[i][k]);
}
printf("\n");
}
printf("请输入第二个矩阵的列数:\n");
scanf("%d",&n);
printf("第二个矩阵为:\n");
for (i=0;i<k;i++)
{
for (j=0;j<n;j++)
{
y[k][j]=rand()%100;
printf("%5d ",y[k][j]);
}
printf("\n");
}
printf("这个两个矩阵的乘积为:\n");
for (i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
sum=0;
for(p=0;p<k;p++)
{
sum+=x[i][p]*y[p][j];
}
z[i][j]=sum;
printf("%5d ",z[i][j]);
}
printf("\n");
}
return 0;
}
运行结果及报错内容 乘法结果出错
我的解答思路和尝试过的方法
我想要达到的结果 正确运行