仅供参考!
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void makearr(int a[3][16], int b[3][3], int c[14])
{
int idx = 0, sum = 0, tmp[9] = {0}, *p = tmp;
for (int i = 0; i < 14; i++)
{
for (int j = 0; j < 3; j++)
{
for (int k = 0, z = i; k < 3; z++, k++)
{
*p++ = b[j][k] * a[j][z];
}
}
int n = 9;
p = tmp;
while (n--)
sum += *p++;
c[idx++] = 1.0 * sum / 16;
p = tmp;
sum = 0;
}
}
int myrand()
{
static int i = 3;
srand(time(NULL) + i++);
return rand() % 90 + 10;
}
int main(int argc, char *argv[])
{
int a[3][16], b[3][3], c[14];
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 16; j++)
{
a[i][j] = myrand();
printf("%d ", a[i][j]);
}
puts("");
}
puts("");
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
b[i][j] = myrand();
printf("%d ", b[i][j]);
}
puts("");
}
puts("");
makearr(a, b, c);
for (int i = 0; i < 14; i++)
{
printf("%d ", c[i]);
if (i == 6)
puts("");
}
return 0;
}