Online C Compiler
Открыть в компиляторе

Учебная версия на русском. Код и его вывод сохранены в исходном виде.

Узоры из символов на C

Согласуйте строки, столбцы, пробелы и переводы строки с помощью вложенных циклов.

Открыть в компиляторе

Узоры из символов на C
Согласуйте строки, столбцы, пробелы и переводы строки с помощью вложенных циклов.

Внешний цикл обычно задаёт строку, внутренний — её символы. До написания программы выразите число пробелов и символов каждой строки через её индекс.

Печатайте перевод строки после завершения всей строки, а не после каждого символа. Различайте начальные пробелы, разделители и пробелы в конце, особенно при автоматическом сравнении вывода.

Проверьте размеры 1, 2 и больше. Для N строк длиной до N символов требуется O(N²) операций вывода; хранить весь рисунок в памяти необязательно.

Код C

#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;
}
Открыть в компиляторе

Ожидаемый вывод

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 

Частые вопросы

Почему код и вывод остаются на английском?

Ключевые слова, идентификаторы и строки, проверяемые тестами, сохранены, чтобы не менять программу. Объяснения и элементы управления переведены.