Überprüfen der Symmetrie von quadratischen Matrizen

CCBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab werden wir lernen, wie man mithilfe der Programmiersprache C überprüft, ob eine quadratische Matrix symmetrisch ist oder nicht. Eine quadratische Matrix wird als symmetrisch bezeichnet, wenn sie ihrer Transponierten gleich ist. Wir werden die Transponierte der Matrix finden und sie mit der ursprünglichen Matrix vergleichen, um ihre Symmetrie zu überprüfen.

Hinweis: Sie müssen die Datei ~/project/main.c selbst erstellen, um zu üben, wie man es codiert und wie man es mit gcc kompiliert und ausführt.

cd ~/project
## main.c erstellen
touch main.c
## main.c kompilieren
gcc main.c -o main
## main ausführen
./main

Variablen deklarieren und Matrix eingeben

Zunächst müssen wir die Variablen deklarieren und die Matrix von der Benutzerschaft eingeben. Wir werden geschachtelte Schleifen verwenden, um die Matrix einzugeben. Um die Matrix von der Benutzerschaft einzugeben, fragen wir zunächst die Benutzerin nach der Dimension der Matrix und speichern sie in 'n'. Anschließend geben wir jedes Element der Matrix mithilfe einer Schleife ein.

#include <stdio.h>

int main() {

    int c, d, a[10][10], b[10][10], n;
    printf("\nGeben Sie die Dimension der Matrix ein: \n\n");
    scanf("%d", &n);

    printf("\nGeben Sie die %d Elemente der Matrix ein: \n\n", n * n);
    for (c = 0; c < n; c++)
        for (d = 0; d < n; d++)
            scanf("%d", &a[c][d]);

    return 0;
}

Die Transponierte der Matrix finden

Die Transponierte der Matrix wird durch den Austausch der Indizes von Zeilen und Spalten erreicht. Wir verwenden geschachtelte Schleifen, um die Transponierte der Matrix zu ermitteln. Um die Transponierte der Matrix zu finden, verwenden wir zwei Schleifen. Die erste Schleife iteriert über die Zeilen, und die zweite Schleife iteriert über die Spalten.

// finding transpose of a matrix and storing it in b[][]
for (c = 0; c < n; c++)
    for (d = 0; d < n; d++)
        b[d][c] = a[c][d];

Überprüfen der Matrixsymmetrie

In diesem Schritt werden wir überprüfen, ob die ursprüngliche Matrix der gleichen wie ihre Transponierte ist oder nicht. Dazu verwenden wir geschachtelte Schleifen. Um die Symmetrie der Matrix zu überprüfen, verwenden wir zwei Schleifen. Die erste Schleife iteriert über die Zeilen, und die zweite Schleife iteriert über die Spalten.

// checking if the original matrix is the same as its transpose
for (c = 0; c < n; c++)
    for (d = 0; d < n; d++)
        if (a[c][d]!= b[c][d]) {
            printf("\n\nMatrix ist nicht symmetrisch\n\n");
            exit(0); // eine systemdefinierte Methode, um das Programm zu beenden
        }

Ergebnisse ausgeben

Nachdem überprüft wurde, dass die Matrix symmetrisch ist, zeigt das Programm eine Bestätigungsnachricht an. Das Programm wird beendet, wenn die Matrix nicht symmetrisch ist.

// If the program is not terminated yet, it means the matrix is symmetric
printf("\n\nMatrix ist symmetrisch\n\n");
printf("\n\n\t\t\tCoding macht Spaß!\n\n\n");

Zusammenfassung

In diesem Lab haben wir gelernt, wie man mithilfe der C-Programmiersprache überprüft, ob eine quadratische Matrix symmetrisch ist oder nicht. Wir haben geschachtelte Schleifen verwendet, um die Matrix einzugeben und ihre Transponierte zu finden, und haben dann überprüft, ob die ursprüngliche Matrix der gleichen wie ihre Transponierte ist oder nicht. Wenn die beiden Matrizen gleich waren, hat das Programm eine Mitteilung angezeigt, in der steht, dass die Matrix symmetrisch ist.