3阶矩阵的乘法
Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others)
c-source:
#include<stdio.h>
#define M 3
#define N 3
void main()
{
int t[M][N],b[M][N];
int n; printf("The number of n:\n");
scanf("%d",&n); int **answer=new int *[n];
for(int i=;i<n;i++)
answer[i] = new int[]; for(int q1=;q1<n;q1++)
for(int q2=;q2<;q2++)
answer[q1][q2]=; for(int k=;k<n;k++)
{
for(int i1=;i1<M;i1++)
for(int j5=;j5<N;j5++)
scanf("%d",&t[i1][j5]); for(int i2=;i2<M;i2++)
for(int j2=;j2<N;j2++)
scanf("%d",&b[i2][j2]); printf("\n"); for(int i3=;i3<M;i3++)
for(int j3=;j3<N;j3++)
{
for(int q=;q<M;q++)
{
answer[k][i3*M+j3]+=t[i3][q]*b[q][j3];
}
}
} for(int p=;p<n;p++)
{
for(int j4=;j4<;j4++)
{
if(j4%==)
printf("\n");
printf("%d ",answer[p][j4]);
}
printf("\n\n");
} for(i=;i<n;++i)
delete[] answer[i];
delete[] answer;
}
知识点:
⒈new二维数组M*N;
int **a=new int *[M];
for(int i=;i<M;i++)
a[i]=new int[N];
⒉动态分配必须由程序自行释放空间:
for(int j=;j<M;j++)
delete[] a[j];
delete [] a;
M*P与P*N维矩阵相乘的问题:
for(int i=;i<M;i++)
for(int j=;j<N;j++)
{
for(int k=;k<p;k++)
answer[i][j]+=a[i][k]*a[k][j];
}