Вычислить произведение двух матриц одна из которых вводится, а вторая задается формулой - 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д