Вывод пирамидки из букв - C (СИ)
Формулировка задачи:
Друзья, подскажите, если кто это решил или знает как. Сломал себе всю голову сегодня. Уже просто интересно.
P.S. Мне только одному кажется, что в этой книге практические задания немного не соответствуют уровню предварительной подготовки к ним? Реально очень тяжело. Хотя читаю все очень добросовестно, и на вопросы для самоконтроля отвечаю практически без ошибок.
Решение задачи: «Вывод пирамидки из букв»
textual
Листинг программы
- #include <stdio.h>
- #include <ctype.h>
- #include <conio.h>
- int main(void)
- {
- char letter, i, j;
- int spaces, count;
- printf("Input a letter: ");
- scanf("%c", &letter);
- letter = toupper(letter);
- spaces = letter - 'A';
- for (i = 'A'; i <= letter; ++i)
- {
- for (count = 0; count < spaces; ++count)
- printf(" ");
- for (j = 'A'; j < i; ++j)
- printf("%c", j);
- for (j = i; j >= 'A'; --j)
- printf("%c", j);
- printf("\n");
- --spaces;
- }
- _getch();
- return 0;
- }
Объяснение кода листинга программы
В этом коде происходит следующее:
- Ввод буквы от пользователя с помощью функции scanf.
- Приведение введенной буквы к верхнему регистру с помощью функции toupper.
- Вычисление количества пробелов, которые должны быть напечатаны перед началом вывода пирамиды, с помощью вычитания кода символа 'A' из введенной буквы.
- Вывод пирамиды из букв. Это делается с помощью трех вложенных циклов.
- Внешний цикл идет от символа 'A' до введенной буквы.
- Внутренний цикл по счету пробелов печатает соответствующее количество пробелов.
- Второй внутренний цикл печатает буквы от 'A' до текущей буквы во внешнем цикле.
- Третий внутренний цикл печатает буквы от текущей буквы до 'A' во внешнем цикле.
- Уменьшение количества пробелов на единицу после каждого вывода пирамиды.
- Использование функции _getch для приостановки выполнения программы и возврата 0, чтобы указать, что программа успешно завершилась.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д