小白求助,关于矩阵的乘法,求大神相助!

AXDii 2016-10-16 04:43:24
程序如下,我想实现二维矩阵的乘法,里面初始化数据都为零,但是却输出了”0 0 0 0 8 0 4203905 0 4202896“,请问为什么会输出非零实数,求大神解答,谢谢。



#include<stdio.h>
#define M 3
#define N 2
int main()
{
int a[M][N]={0,0,0,0,0,0},b[N][M]={0,0,0,0,0,0},r[M][M],i,j,k=0;
for(i=0;i<M;i++)
{
for(k=0;k<M;k++)
for(j=0;j<N;j++)
r[i][k]+=a[i][j]*b[j][i];
}
for(i=0;i<M;i++)
{
for(j=0;j<M;j++)
printf(" %d ",r[i][j]);
}
return 0;
}
...全文
141 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lxq0228 2016-10-17
  • 打赏
  • 举报
回复
r[M][M]初始化
小灸舞 版主 2016-10-17
  • 打赏
  • 举报
回复
r[i][k] += a[i][j] * b[j][i];这句你多了个+号
应该是r[i][k] = a[i][j] * b[j][i];
sdghchj 2016-10-16
  • 打赏
  • 举报
回复
r[i][k]+=a[i][j]*b[j][k];
paschen 2016-10-16
  • 打赏
  • 举报
回复
因为你的r 中不是所有的数都初始化了 你初始的部分只是: for(k=0;k<M;k++) for(j=0;j<N;j++) 这里一个唯度上是M,另一个是N 但r的大小两个维度上都是M

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧