Как отформатировать таблицу, как показано на C

#c #format

Вопрос:

Я должен печатать цифры вот так

стол

Задание «Первое число печатается с выравниванием по правому краю через 5 пробелов, затем печатается двоеточие, затем количество шагов записывается как число с выравниванием по левому краю через 5 пробелов»

Код, который у меня сейчас есть, печатает цифры примерно так

     3:7    4:2    5:5    6:8    7:16    8:3    9:19   10:6
   11:14   12:9   13:9   14:17   15:17   16:4   17:12
   18:20   19:20   20:7
 

Это код для печати этой таблицы.

 void makeTable(int start, int end) {
  for(int i = 0; i<=end-start; i  ) {
    printf("]:%d", i start, hofpo(i start));
    if(i>0 amp;amp; i % 7 == 0) {
      printf("n");
    }
  }
  printf("n");
}
 

Как напечатать цифры в нужном формате?

Комментарии:

1. С -:%-3d" добавлением соответствующего интервала между каждым набором из 6 символов. Или аналогично, - форматы справа от поля с 2 пробелами, %-3d форматы слева от поля с 3 пробелами. Пожалуйста, ознакомьтесь со спецификациями формата

2. Также измените значение if (i > 0 amp;amp; (i 1) % 7 == 0) printf("n"); на печать 7 столбцов в строке

Ответ №1:

Я подвел итоги комментариев для новичков:

 #include <stdio.h>
#include <stdlib.h>

void makeTable (int, int);

int main (int argc, char * *argv, char * *envp) {
    makeTable(5, 35);
    return (EXIT_SUCCESS);
}

void makeTable(int start, int end) {
    for(int i = 0; i<=end-start; i  ) {
        printf("-:%-3d", i start, i start-3);
        if(i>0 amp;amp; (i 1) % 7 == 0) {
            printf("n");
        }
    }
    printf("n");
}