1

Тема: транспортувати квадратну матрицю

Потрібно щоб програма працювала на borland cpp
транспортувати квадратну матрицю (повернути вихідну матрицю на 90) Визначити, чи є дана матриця симетричною. (Матриця називаєтся симетричною, якщо транспонована матриця дорівнює вихідній)

2

Re: транспортувати квадратну матрицю

#include <stdio.h>

int main (void){
    int a, i, j, n, k, l;
    float b, c;
    
    printf("Input side lenght: ");
    scanf("%d", &n);
    printf("Side lenght is: %d\n", n);
    float matrix[n][n], temp[n][n];
    for(i = 0; i < n; i++){
        for(j = 0; j < n; j++){
            printf("(%d,%d): ", i+1, j+1);
            scanf("%f", &matrix[i][j]);
            temp[i][j] = matrix[i][j];
        }
    }
    printf("Original\n");
    for(i = 0; i < n; i++){
        for(j = 0; j < n; j++){
            printf("%.3f ", matrix[i][j]);
        }
        putchar('\n');
    }
    printf("Temp\n");
    for(i = 0; i < n; i++){
        for(j = 0; j < n; j++){
            printf("%.3f ", temp[i][j]);
        }
        putchar('\n');
    }
    printf("Select rotate type: 0 = CW; 1 = CCW\n");
    scanf("%d", &a);
    if(a != 0){
        a = 1;
        k = n-1;
        printf("CCW\n");
        for(i = 0; i < n; i++){
            for(j = 0; j < n; j++){
                matrix[i][j] = temp[j][k];
            }
            k--;
        }
    } else {
        printf("CW\n");
        for(i = 0; i < n; i++){
            k = n-1;
            for(j = 0; j < n; j++){
                matrix[i][j] = temp[k][i];
                k--;
            }
        }
    }
    b = 0.0;
    c = 0.0;
    for(i = 0; i < n; i++){
        for(j = 0; j < n; j++){
            if(i == 0){
            b += temp[i][j];
            c += matrix[i][j];
            }
            printf("%.3f ", matrix[i][j]);
        }
        putchar('\n');
    }
    if(b == c)
    printf("Matrix is symetric\n");
    return 0;
}