Пол Дейтл 4.16 рис 4; for; как сделать проще - C (СИ)
Формулировка задачи:
Нужно нарисовать с помощью for квадрат: 9 пробелов и звездочку до 10 звездочек - https://ideone.com/msYvvd
Можно ли сделать короче?
int i, x; for (x = 0; x < 10; ++x) { for (i = (10-1); i > x; --i) { printf("#"); } for (i = 0; i <= x; ++i) { printf("*"); } printf("\n"); }
Решение задачи: «Пол Дейтл 4.16 рис 4; for; как сделать проще»
textual
Листинг программы
int main() { const char *STARS = "**********"; for (unsigned i = 0; i < 10; ++i) printf("%10s\n", STARS + 9 - i); }
Объяснение кода листинга программы
В этом коде:
- Объявлена константная строка
STARS
, которая содержит 10 символов звездочек. - Затем следует цикл
for
, который выполняется 10 раз, с переменнойi
в качестве счетчика. - Внутри цикла, каждый раз, выводится строка, используя формат
printf
, с использованиемSTARS + 9 - i
для получения подстрокиSTARS
с 9 символов, которые не являются новыми строками, и доi
символов, которые являются новыми строками. - Каждая строка выводится с отступами, используя символ форматирования
%10s\n
. - Значение
i
увеличивается на 1 после каждой итерации цикла. - Цикл завершается, когда значение
i
становится равным 10. Следует отметить, что этот код выведет строку из 9 символов звездочек, а не 10, так как последний символ будет заменен символом новой строки.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д