C: Хэш-пирамида - PullRequest
       2

C: Хэш-пирамида

0 голосов
/ 27 сентября 2018

Мне нужна программа, которая печатает шаблон ниже.Программа должна прочитать количество строк от пользователя.

Пример 1:

Ввод: 3

Выход:

#
##
####

Пример 2:

** Ввод: ** 5

Выход

#
##
####
#######
###########

Код, который у меня пока есть:

#include <stdio.h>

int main(int argc, char const *argv[])
{
   int n;
   scanf("%d", &n);
   int step = n;
   for (int i = 0; i < n; i++) {
      for (int j = 0; j < n; j+=step) {
         printf("#");
      }
      step--;
      puts("");
   }
   return 0;
}

Ответы [ 2 ]

0 голосов
/ 27 сентября 2018

Насколько я вижу из ваших примеров, шаблон выглядит так:

Строка 0: 1 #

Строка 1: 2 # (то есть 1 + 1 или «Число # в»предыдущая строка + номер этой строки ")

строка 2: 4 # (то есть 2 + 2 или" номер # в предыдущей строке + номер этой строки ")

строка 3: 7 #(т.е. 4 + 3 или «Число # в предыдущей строке + номер этой строки»)

Таким образом, вы можете использовать «Число # в предыдущей строке + номер этой строки» в качестве шаблона в вашем коде длянайти число #, необходимое в текущей строке.Что-то вроде:

#include <stdio.h>

int main(int argc, char const *argv[])
{
    int n;
    scanf("%d", &n);
    int limit = 1;                      // Limit for line 0
    for (int i = 0; i < n; i++) {
        limit += i;                     // Calculate limit for this line
        for (int j = 0; j < limit; ++j) {
            printf("#");
        }
        puts("");
    }
    return 0;
}

Вывод для n = 7:

#
##
####
#######
###########
################
######################
0 голосов
/ 27 сентября 2018

У вас все отлично;)

у вас на самом деле есть три проблемы:

Первая проблема заключается в том, что вы не хотите увеличивать j шаг за шагом.
Вторая проблема заключается в том, чтоВы не увеличиваете шаг в нужном месте.
В-третьих, максимальное значение j НЕ i

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