我试图打印乘法表和之前,每个结果,我想增加一定数量的空间,根据数字的结果。
以下是我所做的:
#include <stdio.h>
#define TEN 10
int len_num(int *num);
int main(int argc, const char * argv[])
{
int i,j;
int space = 0;
int multi;
for(i = 1; i <= TEN; i++)
{
for(j=1; j <= TEN; j++)
{
multi = i * j;
space = len_num(&multi);
printf("%*d", space, i*j);
}
printf("\n");
}
return 0;
}
int len_num(int *num)
{
int length = 0;
while (*num != 0)
{
*num /= 10;
length++;
}
return length;
}
由于某种原因,空格没有出现。
这是我想要达到的目标:
有什么建议吗?
谢谢。
2条答案
按热度按时间zwghvu4y1#
如果您希望一个具有 n 位数的值以 n 个空格为前缀,则需要更改:
收件人:
但是,这将以列不对齐的方式设置表格的格式:
如果你想要一个格式正确的表格,你可能需要一个固定宽度的值,例如(宽度为5):
这将产生以下输出:
边注:
len_num
没有理由修改num
参数,因此它应该通过值(int len_num(int num)
)获取该参数。TEN
不是一个很好的名称,考虑更改为MAX
(以防您可能更改值10)。mbzjlibv2#
它看起来太简单了: