矩阵相乘计算方式:
c[i][j] += a[i][k] * b[k][j];
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
double** InnerP(int** a, int** b, int n)
{
int i, j, k;
double** p = (double**)malloc(sizeof(double*) * n);
for (i = 0; i < n; i++)
{
p[i] = (double*)malloc(sizeof(double) * n);
for (j = 0; j < n; j++)
{
p[i][j] = 0;
for (k = 0; k < n; k++)
p[i][j] += a[i][k] * b[k][j];
}
}
return p;
}
int main()
{
int i, j;
int n;
int** a, ** b;
double** p;
printf("请输入阶数n:");
scanf("%d", &n);
a = (int**)malloc(sizeof(int*) * n);
b = (int**)malloc(sizeof(int*) * n);
printf("输入A:\n");
for (i = 0; i < n; i++)
{
a[i] = (int*)malloc(sizeof(int) * n);
for (j = 0; j < n; j++)
scanf("%d", &a[i][j]);
}
printf("输入B:\n");
for (i = 0; i < n; i++)
{
b[i] = (int*)malloc(sizeof(int) * n);
for (j = 0; j < n; j++)
scanf("%d", &b[i][j]);
}
p = InnerP(a, b, n);
printf("结果:\n");
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
printf("%.0lf ", p[i][j]);
printf("\n");
}
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!