Упростить цикл без большого количества случаев, если иное - PullRequest
0 голосов
/ 05 ноября 2018

Я должен вывести:

******
*****
****
***
**
*

И я вывел это, но мой код слишком сложен для такого рода упражнений:

for (int i = 6; i > 0; i--) {
  if (i == 6) {
    printf("******\n");
  } else {
    if (i == 5) {
      printf("*****\n");
    } else {
      if (i == 4) {
        printf("****\n");
      } else {
        if (i == 3) {
          printf("***\n");
        } else {
          if (i == 2) {
            printf("**\n");
          } else {
            if (i == 1) {
              printf("*\n");
            }
          }
        }
      }
    }
  }
}

Как вы видите, существует множество случаев if-else, чтобы посмотреть, какое значение содержит i, а затем решить, сколько символов в строке должно быть выведено, но этот код является просто массивным блоком кода, который, Я думаю, это не обязательно нужно. Поэтому я пришел сюда, чтобы спросить, как упростить мой код с тем же результатом.

Код должен выглядеть немного более читабельным. Любая идея, как изменить мой код в моем случае?

Ответы [ 2 ]

0 голосов
/ 05 ноября 2018

Если вы используете другой цикл for, это будет намного проще:

for(int i = 6; i > 0;i--) {
    for(int j = 0; j < i; j++) {  
     printf("*");
    }  
    printf("\n");
   }
0 голосов
/ 05 ноября 2018

Вы ищете вложенный цикл. Это цикл внутри цикла. Чтобы получить желаемый результат, попробуйте это:

int main()
{
    for (int i = 0; i < 6; i++) {
        for (int j = 0; j < 6 - i; j++) {
            printf("*");
        }
        printf("\n");
    }
}

Здесь цикл i отвечает за строки (вы можете видеть, что printf("\n"); запускается каждый раз), а цикл j отвечает за печать соответствующего количества "*".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...