Получить матрицу АВ ; элементы матрицы В вычисляются по формуле - C (СИ)
Формулировка задачи:
Дана квадратная матрица А порядка n. Получить матрицу АВ ; элементы матрицы В вычисляются по формуле
Вот я пробывал чтотт написать не работает. Нужно на языке С
#include <stdio.h>
main()
{
float a[3], b[3], c[3];
int i,j;
{
for(i=0;i<3;i++);
for(j=0;j<3;j++);
scanf("%d",a[i][j]);
for(i=0;i<3;i++);
for(j=0;j<3;j++);
b[i][j]=1/(i+j-1);
for(i=0;i<3;i++);
for(j=0;j<3;j++);
c[i][j]=0;
for(i=0;i<3;i++);
for(j=0;j<3;j++);
c[i][j]=c[i][j]+a[i][j]*b[i][j];
{
printf("Masiv C");
for(i=0;i<3;i++);
for(j=0;j<3;j++);
printf("%6.2f",c[i][j]);
}
getch();
}Решение задачи: «Получить матрицу АВ ; элементы матрицы В вычисляются по формуле»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(int argc, char *argv[]) {
srand(time(NULL));
const int array_size = 5;
float a[array_size][array_size];
float b[array_size][array_size];
float ab[array_size][array_size];
int i, j, k;
printf("A[][]:\n");
for (i = 0; i < array_size; ++i) {
for (j = 0; j < array_size; ++j)
// так как индексация в математике идет с единицы
// в формуле прибавляется по +1 для каждого измерения
// +2 -1 = +1 иначе получаем inf при i = 0 или j = 0
printf("%9.5f", b[i][j] = 1./(i + j + 1));
printf("\n");
}
printf("\n");
printf("B[][]:\n");
for (i = 0; i < array_size; ++i) {
for (j = 0; j < array_size; ++j)
printf("%9.5f", a[i][j] = (rand() % 1000) / 100.);
printf("\n");
}
printf("\n");
printf("C[][] = A x B:\n");
for (i = 0; i < array_size; ++i) {
for (j = 0; j < array_size; ++j) {
ab[i][j] = 0;
for (k = 0; k < array_size; ++k)
ab[i][j] += a[i][k] * b[k][j];
printf("%9.5f", ab[i][j]);
}
printf("\n");
}
printf("\n");
return 0;
}