从键盘输入一个4×4的矩阵A和B,求出它们的和、差、积并按矩阵输出。
程序如下:这个程序在用整型定义时可以运行。但我把数列一改为浮点型就不能运行了,且编译能通过。
请问这是为什么啊????我实在不憧
#include <stdio.h>
#include <math.h>
main()
{int i, j;
float a[4][4], b[4][4];
float h[4][4], c[4][4], ji[4][4];
/*输入阵列A*/
printf("input the A :");
for(i=0; i<4; i++)
for(j=0; j<4; j++)
scanf("%f", &a[i][j]);
/*输入B阵列*/
printf("input the B:");
for(i=0; i<4; i++)
for(j=0; j<4; j++)
scanf("%f", &b[i][j]);
/*计算矩阵的和、差、积*/
for(i=0; i<4; i++)
for(j=0; j<4; j++)
{h[i][j]=a[i][j]+b[i][j]; /*和*/
c[i][j]=a[i][j]-b[i][j]; /*差*/
ji[i][j]=a[i][j]*b[i][j]; /*积*/
}
/*输入矩阵和*/
printf("output h:\n");
for(i=0; i<4; i++)
{for(j=0; j<4; j++)
printf("%f", h[i][j]);
printf("\n");
}
/*输出矩阵积*/
printf("\n output ji:\n");
for(i=0; i<4; i++)
{for(j=0; j<4; j++)
printf("%f", ji[i][j]);
printf("\n");
}
/*输出矩阵差*/
printf("\n output c:\n");
for(i=0; i<4; i++)
{for(j=0; j<4; j++)
printf("%f", c[i][j]);
printf("\n");
}
}
----------------解决方案--------------------------------------------------------
楼主的矩阵乘积好像写错了,是第一个矩阵的行×第二个矩阵的列才对
----------------解决方案--------------------------------------------------------
----------------解决方案--------------------------------------------------------
那我要怎么定义,为什么在整型的情况下可以运行呢?
----------------解决方案--------------------------------------------------------