Напечатайте квадратный шаблон, полный "#", используя два цикла while - PullRequest
1 голос
/ 01 апреля 2011

Учитывая данные, я хочу напечатать квадрат вроде этого:

Enter number: 5
#####
#####
#####
#####
#####

Моя попытка:

int n;
int col=0;
int row=0;
//user input blah blah

    while  (col < n) {
        while (row < n) {
            printf("#");
            row++;
        }
        col++;
        printf("\n");
    }

Но это не печать того, что я ожидаю ..Кто-нибудь может это исправить?

РЕДАКТИРОВАТЬ: фактический вывод выглядит следующим образом (после 4 \ n символов, SO, кажется, не отображать его).

#####

Ответы [ 5 ]

3 голосов
/ 01 апреля 2011
while  (col < n) {
    while (row < n) {
        printf("#");
        row++;
    }
    col++;
    printf("\n");
    row = 0; // <<< THIS HELPS
}
2 голосов
/ 01 апреля 2011

typo.pl ответ решает насущную проблему, но я хотел бы отметить пару вещей:

  1. это тот тип конструкции управления циклами, для которого предназначены циклы for. Инициализация и приращение упакованы в элементе управления цикла, а не разбросаны там, где вы (или этот другой парень) могли бы решить поместить его.

  2. вы переключили логику для управления row и col. Это не имеет значения, так как у вас одинаковое количество каждого. Но когда пришло время добавить поддержку прямоугольника, это может вызвать у кого-то смятение. И если это домашнее задание, это, вероятно, будет означать пару очков.

Итак:

for (row = 0; row < n; ++row) {
    for (col = 0; col < n; ++col) {
        printf("#");
    }
    printf("\n");
}
1 голос
/ 01 апреля 2011

Вам нужно сбросить row после первого цикла while, иначе это будет уже n.

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

Почему не проще?Математические выражения часто более точны, чем элементы управления.

In [1]: n = 5

In [2]: s = ('#'*n+'\n')*n

In [3]: print(s)
#####
#####
#####
#####
#####
0 голосов
/ 01 июля 2015

Вот код для печати квадратный узор в C , заполненный "#"

i=1;
while(i<=n)
{
    j=1;
    while(j<=n)
    {
        printf("#");
        j++;
    }
    printf("\n");
    i++;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...