2016-11-15 2 views
0

Ich habe Programm ac printf wie dieseeine gleiche Anzahl von Zeichen pro Zeile Druck

for (r = 0; r <= 100 ; r++) { 
     for (c = 0; c <= 100 ; c++) { 

      printf("A"); 
     } 
    } 

Wie bearbeite ich den Code, so dass es 5 „A“ pro Zeile wie

„AAAAA drucken: "aber mehrzeilige

+1

Drucken ein Neue-Zeile-Zeichen nach je 5' A's ... –

+0

@Newbie ICT IS Es ist eine Diskriminierung von anderen Buchstaben im Alphabet! Ich lehne ab! –

+0

Klären Sie Ihre ansonsten neblige Frage. Für Ihre gegebenen Schleifen erwarten Sie (a) zwanzig Zeilen zu je fünf "A", also insgesamt 100 Zeichen, oder (b) achtzig Zeilen zu je fünf "A", also insgesamt 400 Zeichen, Newline ausgenommen. Ich denke * du willst (b), aber es sollte in deiner Frage notiert werden. – WhozCraig

Antwort

1

Sie müssen nur die Anzahl der Spalten auf 5 reduzieren und eine neue Zeile gedruckt werden nach jedem Spaltenzyklus wie folgt beendet:

for (int row = 0; row < 20; ++row) { 
    for (int column = 0; column < 5; ++column) { 
     printf("A"); 
    } 
    printf("\n"); 
} 
2

Prüfen, ob die Division c/5 kehrt in einem Rest von 0.

for (r = 0; r <= 20 ; r++) { 
    for (c = 0; c <= 20 ; c++) { 
     if (c%5 == 0) 
      printf("\r\n"); 
     printf("A"); 
    } 
} 
+0

Verdächtige 'printf (" A "); vor' if (c% 5 == 0) printf ("\ r \ n"); ' – chux

+0

Aber ....' c' beginnt bei 0. Wenn also "c == 4" ist, wird das fünfte "A" gedruckt. Bei der nächsten Iteration muss vor dem Drucken ein Zeilenumbruch durchgeführt werden. Wo ist mein Fehler? – C4u

+0

Ja, Vorschlag war ein bisschen aus. 'if (c% 5 == 0) printf (" \ r \ n ");' druckt ein '\ n' bevor etwas gedruckt wird und kein' \ n' nach dem letzten 'A'. Vielleicht benutze 'if (c% 5 == (5-1)) ...' nach dem 'printf (" A ");' – chux

0

Wenn die Anzahl der gedruckten Buchstaben ein Vielfaches von 5 ist, Drucken Ein '\n'

void NuBePrint(int rows, int cols, int period, char letter) { 
    long count = 0; 
    // OP may really want `r < rows` and `c < cols` to print 100x100 rather than 101x101 
    for (int r = 0; r <= rows ; r++) { 
    for (int c = 0; c <= cols; c++) { 
     putchar(letter); 
     count++; 
     if (count%period == 0) putchar('\n'); 
    } 
    } 
    if (count%period != 0) putchar('\n'); // Cope with last line 
} 

// sample usage 
NuBePrint(100, 100, 5, 'A'); 
Verwandte Themen