Найти ошибку в задаче: Даны квадратные матрицы А и В порядка N. Получить матрицу АВ-ВА. - C (СИ)
Формулировка задачи:
#include <stdio.h> #include <math.h> #include <conio.h> #define n 2 main() { int a[n][n],b[n][n],c[n][n]; int i, j, k; clrscr(); printf("vvedite massiv A "); printf("\n"); for(i=0; i<n; i++) for(j=0; j<n; j++) scanf("%d",&a[i][j]); printf("vvedite massiv B"); printf("\n"); for(i=0; i<n; i++) for(j=0; j<n; j++) scanf("%d",&b[i][j]); for (i=0;i<n; i++) for (j=0;j<n; j++) {c[i][j]=0; for (k=0; k<n;k++) c[i][j] = c[i][j] + (a[i][k] * b[k][j] - b[i][k] * a[k][j]); } printf("Rezyl'tat"); printf("\n"); for (i=0;i<n;i++); { for (j=0;j<n;j++); printf(" %d ",c[i][j]); printf("\n"); } getch(); }
Решение задачи: «Найти ошибку в задаче: Даны квадратные матрицы А и В порядка N. Получить матрицу АВ-ВА.»
textual
Листинг программы
#include <stdio.h> #include <conio.h> #include <stdlib.h> #include <malloc.h> int** mult(int**mat1, int**mat2, int **rez, int N); int** diff(int**mat1, int**mat2, int N); int** input(int **mat, int N); void output(int **mat, int N); int main(void) { int **A,**B,**AB, **BA; int N,i; printf("Enter N -> "); scanf("%d",&N); A=(int**)malloc(N*sizeof(int*)); B=(int**)malloc(N*sizeof(int*)); AB=(int**)malloc(N*sizeof(int*)); BA=(int**)malloc(N*sizeof(int*)); for(i=0; i<N ; i++) { A[i]=(int*)malloc(N*sizeof(int)); B[i]=(int*)malloc(N*sizeof(int)); AB[i]=(int*)malloc(N*sizeof(int)); BA[i]=(int*)malloc(N*sizeof(int)); } printf("Matrix A:\n"); input(A,N); output(A,N); printf("Matrix B:\n"); input(B,N); output(B,N); printf("Mult AxB:\n"); output(mult(A,B,AB,N),N); printf("Mult BxA:\n"); output(mult(B,A,BA,N),N); printf("Diff AB-BA:\n"); output(diff(AB,BA,N),N); getch(); for(i=0; i<N; i++) { free(A[i]); free(B[i]); free(AB[i]); free(BA[i]); } free(A); free(A); free(AB); free(BA); return 0; } // input matrix int** input(int **mat, int N) { int i,j; for(i=0; i<N; i++) { for(j=0; j<N ; j++) { mat[i][j]=rand()%5+1; } } return mat; } // output matrix void output(int **mat, int N) { int i,j; for(i=0; i<N ; i++) { for(j=0; j<N; j++) { printf("%d ",mat[i][j]); } printf("\n"); } } // mult matrix int** mult(int **mat1, int **mat2, int **rez, int N) { int i,j,k,S; for(i=0; i<N; i++) { for(j=0; j<N; j++) { S=0; for(k=0; k<N; k++) { S+=mat1[i][k]*mat2[k][j]; } rez[i][j]=S; } } return rez; } // diff matrix int ** diff(int **mat1, int **mat2, int N) { int i,j; for(i=0; i<N; i++) { for(j=0; j<N; j++) { mat1[i][j]-=mat2[i][j]; } } return mat1; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д