Пол Дейтл 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);
}

Объяснение кода листинга программы

В этом коде:

  1. Объявлена константная строка STARS, которая содержит 10 символов звездочек.
  2. Затем следует цикл for, который выполняется 10 раз, с переменной i в качестве счетчика.
  3. Внутри цикла, каждый раз, выводится строка, используя формат printf, с использованием STARS + 9 - i для получения подстроки STARS с 9 символов, которые не являются новыми строками, и до i символов, которые являются новыми строками.
  4. Каждая строка выводится с отступами, используя символ форматирования %10s\n.
  5. Значение i увеличивается на 1 после каждой итерации цикла.
  6. Цикл завершается, когда значение i становится равным 10. Следует отметить, что этот код выведет строку из 9 символов звездочек, а не 10, так как последний символ будет заменен символом новой строки.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.786 из 5
Похожие ответы