Нужно напечатать буквы в порядке возрастания и в порядке убывания, во вложенных циклах - C (СИ)
Формулировка задачи:
Нужно воспользоваться вложенными циклами чтобы написать программу, которая выводит на печать фигуру в виде пирамида(как на скрине)
Фигура разворачивается в зависимости от того, какой символ был введен.
Есть внешний цикл(для обработки строк) и три внутренних(1 - для пробелов, 2 - для печати букв в порядке возр., 3 - для печати букв в порядке убыв.)
Вообщем не понимаю как символы которые выводятся с помощью 3 внутр. цикла шли в обратном порядке, начиная со второго ряда.
А
АВА
АВСВА
ABCDCDA
ABCDEDCBA
void four()
{
int row, probel, left_char, right_char, col;
char ch;
printf("\nVvedite symbol: ");
scanf("%c", &ch);
for (row = 1; row <= 5; row++)
{
for (probel = 4; probel >= row; probel--)
printf(" ");
for (left_char = ch - 4, col = 1; col <= row; left_char++, col++)
printf("%c", left_char);
for (right_char = ch - 4, col = 1; col <= row - 1; right_char++, col++)
printf("%c", right_char);
printf("\n");
}
return;
}Решение задачи: «Нужно напечатать буквы в порядке возрастания и в порядке убывания, во вложенных циклах»
textual
Листинг программы
#include <stdio.h>
int main(void)
{
int i;
char c, t;
char start = 'A';
char end = 'Z';
int size = end - start;
for ( c = start; c <= end; ++c, --size) {
for (i=0; i < size; ++i) printf(" ");
for (t = start; t <= c; ++t) printf("%c", t);
for (t = c-1; t >= start; --t) printf("%c", t);
printf("\n");
}
return 0;
}
Объяснение кода листинга программы
В этом коде на языке C выполняется следующая задача:
- Задаются начальные и конечные значения для символов, которые будут выводиться (строки
startиend). - Вычисляется размер этого диапазона (разница между
endиstart). - В цикле от
startдоendвыводятся сначала пробелы, соответствующие размеру оставшегося диапазона, а затем символы отstartдо текущего символа в обоих направлениях. - После вывода всех символов в указанном диапазоне цикл завершается и программа возвращает 0, сигнализируя об успешном завершении.