Перемножение матриц - C (СИ) (149763)

Узнай цену своей работы

Формулировка задачи:

С умножением беда совсем...Причем последний столбец нормальный, а остальные нет. Помогите, пожалуйста, найти ошибки в программе. Мне кажется, где-то с выделением памяти накосячил, ибо в этой теме не особо силен. Умножение матрицы [mxn] и [nxs]
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
    int i, j, k, m, n, s;
    float **A;
    float **B;
    float **C;
    float c;
    m = 2;
    n = 3;
    s = 4;

    A = new float *[m];
    for (i = 0; i < m; i++)
        A[i] = new float[n];
    B = new float *[n];
    for (i = 0; i < n; i++)
        B[i] = new float[s];
    C = new float *[s];
    for (i = 0; i < m; i++)
        C[i] = new float[s];
 
    printf("A: \n");
 
    for (i = 0; i < m; i++)
    {
        for (j = 0; j < n; j++)
        {
            A[i][j] = rand() % 10;
            printf("%.2f \t", A[i][j]);
        }
        printf("\n");
    }
    printf("B: \n");
    for (i = 0; i < n; i++)
    {
        for (j = 0; j < s; j++)
        {
            B[i][j] = rand() % 10;
            printf("%.2f \t", B[i][j]);
        }
        printf("\n");
    }
    printf("\n");
 
    for (i = 0; i < m; i++)
        for (k = 0; k < s; k++)
        {
            c = 0;
            for (j = 0; j < n; j++)
                c = c + A[i][j] * B[j][k];
            C[i][j] = c;
        }
 
        printf("C: \n");
 
    for (i = 0; i < m; i++)
    {
        for (j = 0; j < s; j++)
        {
            printf("%.2f \t", C[i][j]);
        }
        printf("\n");
    }
 
    for (i = 0; i < m; i++)
        delete[]A[i];
    delete[]A;
    A = NULL;
    for (i = 0; i < n; i++)
        delete[]B[i];
    delete[]B;
    for (i = 0; i < m; i++)
        delete[]C[i];
    delete[]C;
 
    getch();
 
}

Решение задачи: «Перемножение матриц»

textual
Листинг программы
**At=transposition(A, m, n);

Объяснение кода листинга программы

  1. At=transposition(A, m, n); В данном коде происходит перемножение матрицы A с транспонированной матрицей A. Значения переменных:
    • At - результат перемножения матриц A и Aт (транспонированная матрица A)
    • A - исходная матрица
    • m - количество строк в матрице A
    • n - количество столбцов в матрице A

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.9 из 5
Похожие ответы