#include <stdio.h>//指定头文件
void main()
{
int a[4][4],b[4][4],c[4][4];//定义三个二维数组作为矩阵
int i,j,k;//定义三个变量用于循环
int s[4][4]={0};
printf("请输入矩阵A:\n");
for(i=1;i<=4;i++)
{
for(j=1;j<=4;j++)
{
printf("a[%d][%d]=",i,j);
scanf("%d",&a[i][j]);
}
}
printf("\n");
printf("请输入矩阵B:\n");
for(i=1;i<=4;i++)
{
for(j=1;j<=4;j++)
{
printf("a[%d][%d]=",i,j);
scanf("%d",&b[i][j]);
}
}
printf("矩阵A:\n");
for(i=1;i<=4;i++)
{
for(j=1;j<=4;j++)
{
printf("%d ",a[i][j]);
if(j==4)
printf("\n");
}
}
printf("\n");
printf("矩阵B:\n");
for(i=1;i<=4;i++)
{
for(j=1;j<=4;j++)
{
printf("%d ",b[i][j]);
if(j==4)
printf("\n");
}
}
printf("\n");
printf("矩阵C=A*B:\n");
for(i=1;i<5;i++)
{
for(j=1;j<5;j++)
{
for(k=1;k<=4;k++)
{
s[i][j]+=a[i][k]*b[k][j];
}
c[i][j]=s[i][j];
printf("%d ",c[i][j]);
if(j==4)
printf("\n");
}
}
}
为什么矩阵C到第三行第四列开始就出错了呢?
谁给解答下
#include <stdio.h>
void main()
{
int a[4][4],b[4][4],c[4][4];
int i,j,k;int s[4][4]={0};
printf("请输入矩阵A:\n");
for(i=0;i<=3;i++)
{
for(j=0;j<=3;j++)
{
printf("a[%d][%d]=",i,j);
scanf("%d",&a[i][j]);
}
}
printf("\n");
printf("请输入矩阵B:\n");
for(i=0;i<=3;i++)
{
for(j=0;j<=3;j++)
{
printf("a[%d][%d]=",i,j);
scanf("%d",&b[i][j]);
}
}
printf("矩阵A:\n");
for(i=0;i<=3;i++)
{
for(j=0;j<4;j++)
{
printf("%d ",a[i][j]);
if(j==3)
printf("\n");
}
}
printf("\n");
printf("矩阵B:\n");
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
printf("%d ",b[i][j]);
if(j==3)
printf("\n");
}
}
printf("\n");
printf("矩阵C=A*B:\n");
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
for(k=0;k<4;k++)
{
s[i][j]+=a[i][k]*b[k][j];
}
c[i][j]=s[i][j];
printf("%d ",c[i][j]);
if(j==3)
printf("\n");
}
}
}