Печать первых 50 чисел с 5 строками и 10 столбцами - PullRequest
0 голосов
/ 22 июня 2019

Я хочу напечатать первые 49 чисел с 5 строками и 10 столбцами.

Example

Я пытался использовать определенные значения ширины и пытался выровнять его, но я не мог понять, как.

#include <stdio.h>
#include <stdlib.h>
int main()
{
   int i, j;
   int count = 50;
   int r = 5;
   int c = 10;

   for (i = 0; i <= r; i++)
   {
     for(int j = 1; j <=count; j++)
     {
       printf("%9d", i);
       i++;
     }
   }

   return (0);
}

Я смог напечатать с 0-49, но он не был выровнен правильно, кто-то может помочь? Спасибо.

Ответы [ 4 ]

1 голос
/ 22 июня 2019

Нет необходимости использовать два цикла, один подойдет.

  1. Используйте "% 2d", чтобы зарезервировать две цифры для каждого числа.
  2. Не увеличивать для переменной циклавнутри петли.Это не очень полезно здесь.

Код

#include <stdlib.h>
#include <stdio.h>
int main()
{
   int i, j;
   int count = 50;
   int c = 10;

   for (i = 0; i < count; i++)
   {
       printf("%2d ", i);
       if (i%c == 9) printf("\n");
   }

   return (0);
}
1 голос
/ 22 июня 2019

Вам нужен только один цикл, и вы можете использовать оператор остатка для определения необходимости новой строки.

#include <stdio.h>

int main()
{
   int count = 50;
   int columns = 10;

   for (int i = 0; i < count; i++)
   {
       printf("%9d", i);

       if ((i % columns) == 9)
       {
           printf("\n");
       }
   }

   return 0;
}

Вывод:

    0        1        2        3        4        5        6        7        8        9
   10       11       12       13       14       15       16       17       18       19
   20       21       22       23       24       25       26       27       28       29
   30       31       32       33       34       35       36       37       38       39
   40       41       42       43       44       45       46       47       48       49
0 голосов
/ 22 июня 2019

Вам нужно будет знать, напечатаны ли в столбце 10 значений, вам потребуется смещение, чтобы напомнить вам, где произошел последний элемент, который был последним 10-м значением, поэтому мы присваиваем переменную offset этому значению элемента на основе 10 столбцов в строке, поэтому мы берем модуль, если его полностью делить на 10, тогда мы перейдем к следующей строке

#include <stdio.h>
#include <stdlib.h>
int main()
{
   int count = 0;
   int row = 5;
   int column = 9;
   int offset = 0;

  for (int outer = 0; outer <= row; outer++)
   {
     for(int inner = offset; inner <= column; inner++)
     {
       if(count>=50){
        break;
      }
       printf("%9d", count); // tab spaces between colums
       count++;

     }
      printf("\n"); // new lines 
   }
   return (0);
}
0 голосов
/ 22 июня 2019

Добавление пробела или любого символа до "% 9d" решает проблему.

   printf(" %9d", i);

Output when the above line is used

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