题目:实现矩阵相乘
#include <stdio.h>
#include <stdlib.h>
#define MAX 10
void turn(int m, int n, int p, long IM1[MAX][MAX], long IM2[MAX][MAX], long IMR[MAX][MAX])
{
int i, j, k;
long S;
for (i = 0; i < m; i++)
for (j = 0; j < p; j++)
{
S = 0;
for (k = 0; k < n; k++)
S += IM1[i][j] * IM2[k][j];
IMR[i][j] = S;
}
}
int main()
{
long IM1[MAX][MAX], IM2[MAX][MAX];
long IMR[MAX][MAX], ITemp;
int i, j, m, n, p;
printf("\n请输入M1:\n");
scanf("%d", &m);
printf("\n请输入M1:\n");
scanf("%d", &n);
printf("\n请输入M2:\n");
scanf("%d", &p);
printf("\n请输入元素M1(%d*%d):\n", m, n);
for (i = 0; i<m; i++)
for (j = 0; j<p; j++)
{
scanf("%ld", &ITemp);
IM1[i][j] = ITemp;
}
printf("\n请输入元素M2(%d*%d):\n", n, p);
for (i = 0; i<n; i++)
for (j = 0; j<p; j++)
{
scanf("%ld", &ITemp);
IM2[i][j] = ITemp;
}
turn(m, n, p, IM1, IM2, IMR);
printf("\nRm:\n");
for (i = 0; i<m; i++)
{
for (j = 0; j<p; j++)
printf("%ld", IMR[i][j]);
printf("\n");
}
system("pause");
return 0;
}