Вычислить произведение двух матриц одна из которых вводится, а вторая задается формулой - C (СИ)
Формулировка задачи:
Дана квадратная матрица А порядка n. Получить матрицу АВ (I,j,…,n); элементы матрицы В вычисляются по формуле
вот есть начало, но нет получения матрицы АВ помогите, заранее благодарю.
#include <stdio.h> #include <math.h> #define n 3 main () { int A[n][n]; float B[n][n],i,j,AB[n][n]; clrscr(); for(i=0;i<n;i++) { for(j=0;j<n;j++) scanf("%d",&A[i][j]);} for(i=0;i<n;i++) { for(j=0;j<n;j++) printf("%4d",A[i][j]); printf("\n"); } for (i=0;i<n;i++) { for (j=0;j<n;j++) { if (i<j) B[i][j]= 1/((i+1)+(j+1)-1); if (i==j)B[i][j]=0; if (i>j) B[i][j]= -1/((i+1)+(j+1)-1); } } for (i=0;i<n;i++) { printf("\n"); for (j=0;j<n;j++) { AB[i][j] = A[j][i]*B[i][j]; printf(" %.2f",AB[i][j]); } } getch(); }
Решение задачи: «Вычислить произведение двух матриц одна из которых вводится, а вторая задается формулой»
textual
Листинг программы
#include <stdio.h> int main() { int irow, icol, n, k; float sum; printf("Ââåäèòå ïîðÿäîê Г¬Г*òðèöû\n"); printf("n = "); scanf("%u", &n); float A[n][n], B[n][n], C[n][n]; printf("Ââåäèòå ïåðâóþ Г¬Г*òðèöó: \n"); for(irow = 0; irow < n; irow++) for(icol = 0; icol < n; icol++) { printf("A[%d][%d] = ", irow, icol); scanf("%f", &A[irow][icol]); } for(irow = 0; irow < n; irow++) for(icol = 0; icol < n; icol++) { if (irow<icol) B[irow][icol]=1/(irow+icol-1); else if(irow==icol) B[irow][icol]=0; else B[irow][icol]=-(1/(irow+icol-1)); } for(irow = 0; irow < n; irow++) for(icol = 0; icol < n; icol++) { sum = 0; for(k = 0; k < n; k++) { sum += A[irow][k] * B[k][icol]; } C[irow][icol] = sum; } printf("\n"); for(irow = 0; irow < n; irow++) for(icol = 0; icol < n; icol++) { if(icol == n - 1) printf("[%.1f]\n", C[irow][icol]); else printf("[%.1f]", C[irow][icol]); } printf("\n"); return (0); }
Объяснение кода листинга программы
В этом коде выполняется умножение матрицы A на матрицу B, результат записывается в матрицу C.
- Объявляются переменные:
- irow, icol, n, k — для хранения номеров строк, столбцов, размера матрицы и номера текущего элемента;
- sum — для хранения промежуточного значения при вычислении произведения матриц;
- A, B, C — для хранения матриц.
- Считывается размер матрицы n.
- Считываются значения элементов матрицы A.
- Заполняются элементы матрицы B по определенному правилу:
- если irow < icol, то B[irow][icol] = 1/(irow+icol-1);
- если irow == icol, то B[irow][icol] = 0;
- в противном случае B[irow][icol] = -(1/(irow+icol-1)).
- Вычисляются произведения элементов матрицы A и B, и записываются в матрицу C.
- Выводятся значения элементов матрицы C.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д