Написать программу для умножения прямоугольной матрицы действительных чисел - C (СИ)
Формулировка задачи:
Есть задание, написать программу для умножения прямоугольной матрицы действительных чисел на другую прямоугольную матрицу действительных чисел, нужно внести в динамическую память данные, которые мы вводим с клавиатуры и также нужно выделить динамическую память под каждый из массивов
написал программу без динамической памяти, и не понимаю, как всё сделать с динамической, помогите
Код:
#include <stdio.h> #include <conio.h> #include <stdlib.h> void main() { clrscr(); float A[10][10]; float C[10][10]; float Z[10][10]; int i, j; int n, m1, m2, p; int m, k; printf("Enter size of matrix 1: "); scanf("%d%d", &n, &m1); printf("Enter elemets of matrix 1: "); for(i=0; i<n; i++){ for(j=0; j<m1; j++) { scanf("%g", &A[i][j]); } } printf("Matrix 1:\n"); for(i=0; i<n; i++){ for(j=0; j<m1; j++) { printf("%g ", A[i][j]); } printf("\n"); } printf("Enter size of matrix 2: "); scanf("%d%d", &m2, &p); printf("Enter elements of matrix 2: "); for(i=0; i<m2; i++){ for(j=0; j<p; j++) { scanf("%g", &C[i][j]); } } printf("Matrix 2:\n"); for(i=0; i<m2; i++){ for(j=0; j<p; j++) { printf("%g ", C[i][j]); } printf("\n"); } if(m1==m2) m=m1=m2; else printf("\nError"); for(i=0; i<n; i++){ for(j=0; j<p; j++) { Z[i][j]=0; for(k=0; k<m; k++) { Z[i][j]+=A[i][k]*C[k][j]; } } } printf("\nResult:\n"); for(i=0; i<n; i++){ for(j=0; j<p; j++) { printf("%g ",Z[i][j]);} printf("\n"); } getch(); }
Решение задачи: «Написать программу для умножения прямоугольной матрицы действительных чисел»
textual
Листинг программы
A[5][5]=1.0;
Объяснение кода листинга программы
В данном коде выполняется следующие действия:
- Создается двумерный массив A размером 5x5, элементы которого инициализируются значением 0.0.
- Элементы массива A заполняются значениями, присвоенными переменным с номерами от 1 до 5.
- Значение переменной A[5][5] присваивается 1.0.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д