C: Динамический интервал при печати значений - PullRequest
1 голос
/ 02 октября 2019

Я делаю домашнее задание на C, где его часть включает печать значений с определенным интервалом между каждым целым числом. Например, используя треугольник Паскаля:

  1 
  1 1 
  1 2  1 
  1 3  3  1 
  1 4  6  4   1 
  1 5 10 10   5   1 
  1 6 15 20  15   6  1 
  1 7 21 35  35  21  7  1 
  1 8 28 56  70  56 28  8 1 
  1 9 36 84 126 126 84 36 9 1 

Расстояние между целыми числами в каждом столбце точно такое же, как наибольшее целое число +1. Какой лучший способ подойти к этому?

1 Ответ

1 голос
/ 02 октября 2019

Динамический интервал с помощью printf может быть достигнут с помощью специального символа *.

Звездочкой может быть указана ширина поля, или точность, или и то, и другое. В этом случае аргумент int задает ширину или точность поля.

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

#include <stdio.h>

int main(void)
{
    int i;

    printf("Select your spacing: ");
    scanf("%d", &i);
    printf("Spacing is at least %d: |%*d|\n", i, i, 1);
    printf("Spacing is at least %d: |%-*d|\n", i, i, 1);
    return (0);
}

Вам все еще нужно найти наибольшее число в вашей задаче и обработать его ширину. Это должно быть сделано до того, как вы что-нибудь напечатаете. Удачи!

...