Heim > Backend-Entwicklung > C++ > Drucken Sie im C-Programm Zahlen im Matrixdiagonalmuster

Drucken Sie im C-Programm Zahlen im Matrixdiagonalmuster

王林
Freigeben: 2023-09-14 18:25:06
nach vorne
629 Leute haben es durchsucht

Die Aufgabe besteht darin, eine n x n-Matrix diagonaler Muster zu drucken.

Wenn n 3 ist, dann drucken Sie eine diagonale Mustermatrix wie folgt aus:

Drucken Sie im C-Programm Zahlen im Matrixdiagonalmuster

Die Ausgabe lautet also:

Drucken Sie im C-Programm Zahlen im Matrixdiagonalmuster

Beispiel

Input: 3
Output:
   1 2 4
   3 5 7
   6 8 9
Input: 4
Output:
   1 2 4  7
   3 5 8 11
   6 9 12 14
   10 13 15 16
Nach dem Login kopieren

Die Frage legt nahe, dass wir eine Zahl n erhalten und ein n x n generieren Matrix, dann müssen wir die Matrix in einem diagonalen Muster durchlaufen und die Werte in einer separaten Matrix speichern.

Aber dies wird die Komplexität unseres Codes erhöhen, also werden wir −

  • eine Matrix der Größe N X N erstellen, die das Muster vor dem Drucken speichert.

  • Elemente im oberen Dreieck des Musters speichern. Beachten Sie, dass beim Abwärtsbewegen der Diagonale der Zeilenindex um 1 zunimmt und der Spaltenindex um 1 abnimmt.

  • Speichern Sie nach Fertigstellung des oberen Dreiecks die Elemente des unteren Dreiecks auf ähnliche Weise wie im oberen Dreieck, d. h. wenn Sie sich entlang der Diagonale nach unten bewegen, erhöht sich der Zeilenindex um 1 und der Spaltenindex um 1. Die chinesische Übersetzung von

Algorithmus

int printdiagonal(int n)
START
STEP 1: DECLARE int mat[n][n], i, j, k, d=1, m
STEP 2: LOOP FOR i = 0 AND i < n AND i++
   ASSIGN j AS i AND k AS 0
   LOOP FOR j = I AND j >= 0 AND j--
      ASSIGN mat[k][j] AS d
      INCREMENT d AND k BY 1
   END LOOP
END LOOP
STEP 3: LOOP FOR k = 1 AND k < n AND k++
   ASSIGN i AND m EQUALS TO k
   LOOP FOR j = n-1 AND j >= m AND j--
      ASSIGN mat[i][j] AS d;
      INCREMENT d AND i WITH 1
   END FOR
END FOR
STEP 4: LOOP FOR i = 0 AND i < n AND i++
   LOOP FOR j = 0 AND j < n AND j++
      PRINT mat[i][j]
   END FOR
   PRINT NEWLINE
END FOR
STOP
Nach dem Login kopieren

Beispiel

lautet:

Beispiel

#include <stdio.h>
int printdiagonal(int n){
   int mat[n][n], i, j, k, d=1, m;
   for ( i = 0; i < n; i++){
      j = i;
      k = 0;
      for ( j = i; j >= 0; j--){
         mat[k][j] = d;
         d++;
         k++;
      }
   }
   for ( k = 1; k < n; k++){
      i = m = k;
      for ( j = n-1; j >= m; j--){
         mat[i][j] = d;
         d++;
         i++;
      }
   }
   for ( i = 0; i < n; i++){
      for(j = 0; j < n; j++){
         printf("%d ", mat[i][j] );
      }
      printf("</p><p>");
   }
}
int main(int argc, char const *argv[]){
   int n = 3;
   printdiagonal(n);
   return 0;
}
Nach dem Login kopieren

Ausgabe

Wenn wir das obige Programm ausführen, generiert es die folgende Ausgabe:

1 2 4
3 5 7
6 8 9
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonDrucken Sie im C-Programm Zahlen im Matrixdiagonalmuster. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage