最不会的就是这种,完全不知道怎么下手
用rand函数随机产生一个3×4和4×3的矩阵并计算他们的乘积
供参考:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define M 4
#define N 3
int main()
{
int a[N][M], b[M][N], c[N][N] = { 0 };
int i, j, k;
srand((unsigned int)time(NULL));
printf("\n%d行%d列矩阵a[%d][%d]:\n", N, M, N, M);
for (i = 0; i < N; i++) {
for (j = 0; j < M; j++) {
a[i][j] = rand() % 10 + 1;
printf("%d\t", a[i][j]);
}
printf("\n");
}
printf("\n--------*---------\n");
printf("--------*---------\n");
printf("\n%d行%d列矩阵b[%d][%d]:\n", M, N, M, N);
for (i = 0; i < M; i++) {
for (j = 0; j < N; j++) {
b[i][j] = rand() % 10 + 1;
printf("%d\t", b[i][j]);
}
printf("\n");
}
for (i = 0; i < N; i++)
for (j = 0; j < N; j++)
for (k = 0; k < M; k++)
c[i][j] += a[i][k] * b[k][j];//两矩阵相乘结果存入矩阵 C[][]
printf("\n两矩阵相乘得到新矩阵c[%d][%d]:\n", N, N);
for (i = 0; i < N; i++) {
for (j = 0; j < N; j++)
printf("%d\t", c[i][j]);
printf("\n");
}
return 0;
}
你可能不会的就是不知道如何使用rand函数吧,首先构建随机数种子,然后定义二维数组,进行随机赋值,看你想随机数的范围。大概思路就是这样,我没带电脑,如果还是不会,可以私聊问我。