关于for循环后输出的问题

cprime 2008-07-01 03:31:36
#include <stdio.h>

main()
{
int i , k;
int a[2][3] ={1,2,3,4,5,6};
int b[3][2] ={4,2,3,0,1,7};
int c[2][3];
for(i = 0; i < 2; i++)
{
for(k = i; k < 3; k++)
{
c[i][k] += a[i][k]*b[k][i];
}
}
for(i = 0; i < 2; i++)
{
for(k = i; k < 3; k++)
{
printf("%d\t",c[i][k]);
}
printf("\n");
}

}
当相乘之后,数组c中的值怎么还是系统所赋的值呢?
为什么没有输出矩阵相乘之后的结果
...全文
184 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
tncqsy 2008-07-01
  • 打赏
  • 举报
回复
自动赋值需要定义为全局变量
cumtxxl 2008-07-01
  • 打赏
  • 举报
回复
如果你不初始化的话int c[2][3]中存储的是分配这块内存时其中的随机值
在部分初始化后编译器才会自动的把剩余未初始化的自动初始化为0
cprime 2008-07-01
  • 打赏
  • 举报
回复
把c赋值为0后程序正确。

谢谢了^_^

编译器不是自动赋值为0的吗?

我用的vc++
xuyucool 2008-07-01
  • 打赏
  • 举报
回复
对 初始化一下C数组就好
sukyin 2008-07-01
  • 打赏
  • 举报
回复
int c[2][3] = {0};
请初始化c为0数组。
ouyh12345 2008-07-01
  • 打赏
  • 举报
回复
越界了吧,把c数组的值赋初值为0

69,369

社区成员

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

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