c语言 求矩阵a,b的乘积,结果存入矩阵c中并按矩阵形式输出。为什么这样做不对呢?求大神指点

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

}

前面几楼已经回答过了,我想说的是你的大括号太多了,而且不注意规范,两个for的地方完全没必要打括号,也没有注意括号的对应,太杂乱了!我觉得虽然这是小事,但却非常影响程序的阅读,假如你参加面试的时候写程序是这样的,公司肯定不会要你!细节相当重要希望你能注意到这一点。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-11-23
{for(j=0;j<2;j++)
{
c[i][j]=0;
{for(k=0;k<3;k++)
c[i][j]+=a[i][k]*b[k][j];}}
}
j变量的循环作用空间错了,需要加{}
第2个回答  2013-11-24
数组赋值吓我一大跳
第3个回答  2013-11-23
#include<stdio.h>
main()
{
int i,j,k,a[2][3]={1,2,3,4,5,6},b[3][2]={4,2,3,0,1,7},c[2][2]={0};
for(i=0;i<2;i++)
for(j=0;j<2;j++)
for(k=0;k<3;k++)
c[i][j]+=a[i][k]*b[k][j];
for(i=0;i<2;i++)
{ for(j=0;j<2;j++)
printf("%5d",c[i][j]);
printf("\n");
}
}
这是我根据你的改出来的代码
for(i=0;i<2;i++)
{for(j=0;j<2;j++)
c[i][j]=0;你在这里把c[i][j]重复赋值为零了

求矩阵a、b乘积,结果存入矩阵c中并按矩阵形式输出。
for(int a=1;a<=M.tu ;a++){ for(int b=1;b<=N.tu ;b++){ if(M.data[a].i==k&&N.data[b].j==l){ if(M.data [a].j==yy&&N.data [b].i==yy){ Q.data [x].e+=M.data[a].e*N.data [b].e;Q.data[x].i=k;Q.data[x].j=l;} } } } } if(Q.d...

编写一个程序,求矩阵A,B的和,结果存入矩阵C中,并按矩阵形式输出。
include<stdio.h>void main(){ int i,j,c[2][3]; int a[2][3]={{12,23,34},{45,6,32}}; int b[2][3]={{10,12,6},{23,32,3}}; for(i=0;i<2;i++) { for(j=0;j<3;j++) printf("%4d",a[i][j]); printf("\\n\\n"); } for(i=0;i<2;i++) ...

C语言,求任意两数相乘的积!
c = a * b;printf("a*b = %d\\n",c);}

c语言矩阵乘法
int m,n,p,i,j,k,l,a[15][15],b[15][15],c[15][15];while(scanf("%d%d%d",&m,&n,&p)!=EOF){ for(i=0;i<m;i++){ for(j=0;j<n;j++)scanf("%d",&a[i][j]);} for(i=0;i<n;i++){ for(j=0;j<p;j++)scanf("%d",&b[i][j]);} i=0;l=0;while...

...把一个二维数组的元素存入一个一维数组中,并输出?
1; } \/\/new_arr为空的验证,如果出现此错误则 return 1 else { new_arr[i] = arr[y][x];} } \/\/输出新数组的数字 for (int i = 0; i < len; i++){ if (!new_arr) { free(new_arr); return 1; } else { printf("%d ", new_arr[i]);} } free(new_arr);} ...

求C语言上机题库 2010年的
48: 第48题 请编写函数fun,其功能是:将两个两位数的正整数a,b合并成一个整数放在c中。合并的方式是:将a数的十位和个位依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。 答案:void fun(int a,int b,long *c){*c=(a\/10)*1000+(b\/10)*100+(a%10)*10+b%10;}49:...

用C语言帮忙写一下面这个式子,先谢谢了!
恩,不好意思,这几天实在很忙,所以一直没能抽出时间。刚才抽了点时间按你跟我说的要求写了一下。代码过长,不能以消息的形式发给你。关键的地方我都已经注释了。我用的C++给你写的。由于你的问题里设置的情境是比较特殊的情况,所以,本题的算法应该还是可以进一步优化并精简的,但是考虑到通用及...

...*4矩阵键盘输入数字并在LCD1602上显示出来的C语言程序
输出 : 无 \/ bit Busy(void){ bit busy_flag = 0;RS = 0;RW = 1;E = 1;delay();busy_flag = (bit)(P0 & 0x80);E = 0;return busy_flag;} \/ 名称 : wcmd(uchar del)功能 : 1602命令函数 输入 : 输入的命令值 输出 : 无 \/ void wcmd(uchar del){ while(Busy());RS =...

求试题,17届NOIP(C语言)普及组初赛试题
A. 是一种与具体硬件相关的程序设计语言 B. 在编写复杂程序时,相对于高级语言而言代码量较大,且不易调试 C. 可以直接访问寄存器、内存单元、以及I\/O端口 D. 随着高级语言的诞生,如今已完全被淘汰,不再使用 17.( )是一种选优搜索法,按选优条件向前搜索,以达到目标。当探索到某一步时,发现原先选择并不优...

c语言编某方矩阵,求帮忙。。。
等下啊!我有个C++的 我改下再给你! 是不是输入的数一定是a[5][5]呢?即输入的数只有25个呢?include<stdio.h> int main(){ const int n=5;int b[n][n];int a[20][20]={0},i,j;for(i=0;i<n;i++)for(j=0;j<n;j++)scanf("%d",&b[i][j]);i=1;j=n\/2+1;a...

相似回答