格式化printf

时间:2019-02-07 03:25:18

标签: c visual-studio-2017

给我一​​个问题,我应该找到1到20的阶乘。我完成了,但是在示例中,我给了控制台一个格式化的外观,以吸引人。 这是我给的例子。白盒子在那里,因为我应该自己找到答案。因此可以忽略。

Correct Example

这就是我的样子。

My Example

除了printf之外,我们没有得到其他任何教育,所以我不知道其他选择。

这是我的代码。

long long lngFactoral = 1;
int intNumber = 1;

for (int intIndex = 1; intIndex <= 20; intIndex ++ )
{
    lngFactoral = lngFactoral * intIndex;
    printf("%d! = %lli ", intIndex, lngFactoral);

    intIndex++;

    lngFactoral = lngFactoral * intIndex;
    printf("                          %d! = %lli \n", intIndex, lngFactoral);
}

1 个答案:

答案 0 :(得分:1)

您可以在printf中设置字段宽度。您将必须使用设置字段宽度的整数值,使用格式说明符指定宽度。例如,“%5d”或“%10d”。

如果要打印的值小于此数字,则结果将用空格填充。

根据您的情况,您可以按照以下方式修改printf

第一个printf语句:

 printf("%2d! = %20lli ", intIndex, lngFactoral);

第二条printf语句:

printf("   %2d! = %20lli \n", intIndex, lngFactoral);

%2d的左侧是因为您仅找到2位数字的阶乘,因此我们将设置字段宽度2。

类似地,%20d用于右侧,因为最大数字20的阶乘永远不会超过20位数字。