Nederlandse leereditie
Patronen tekenen met C-lussen
Bereken spaties en symbolen per regel met geneste lussen.

De buitenste lus bestuurt doorgaans de regel, de binnenste de tekens. Druk vóór het coderen het aantal spaties en symbolen uit als functie van de regelindex.
Druk een regeleinde af na de hele regel, niet na elk symbool. Onderscheid beginspaties, scheidingstekens en eindspaties, vooral bij automatische uitvoervergelijking.
Test groottes 1, 2 en groter. N regels met maximaal N symbolen kosten O(N²) uitvoerbewerkingen; je hoeft niet de hele tekening op te slaan.
Broncode
#include <stdio.h>
void print_right_pyramid(int rows) {
printf("1. Right-Half Star Pyramid (Rows = %d):\n", rows);
for (int i = 1; i <= rows; i++) {
for (int j = 1; j <= i; j++) {
printf("* ");
}
printf("\n");
}
}
void print_full_pyramid(int rows) {
printf("\n2. Full Centered Star Pyramid (Rows = %d):\n", rows);
for (int i = 1; i <= rows; i++) {
for (int space = 1; space <= rows - i; space++) {
printf(" ");
}
for (int j = 1; j <= 2 * i - 1; j++) {
printf("* ");
}
printf("\n");
}
}
void print_floyd_triangle(int rows) {
printf("\n3. Floyd's Number Triangle (Rows = %d):\n", rows);
int num = 1;
for (int i = 1; i <= rows; i++) {
for (int j = 1; j <= i; j++) {
printf("%-3d", num++);
}
printf("\n");
}
}
int main(void) {
int rows = 5;
print_right_pyramid(rows);
print_full_pyramid(rows);
print_floyd_triangle(rows);
return 0;
}Openen in de compilerVerwacht resultaat
1. Right-Half Star Pyramid (Rows = 5):
*
* *
* * *
* * * *
* * * * *
2. Full Centered Star Pyramid (Rows = 5):
*
* * *
* * * * *
* * * * * * *
* * * * * * * * *
3. Floyd's Number Triangle (Rows = 5):
1
2 3
4 5 6
7 8 9 10
11 12 13 14 15 Veelgestelde vragen
Waarom blijven code en sommige resultaten Engels?
C-sleutelwoorden, namen, programmacommentaar en verwachte uitvoer blijven gelijk aan het origineel om uitvoerbare code en consistente tests te behouden. Uitleg en instructies zijn vertaald.