为什么没有/n还能换行

#include <stdio.h>

int main(void)
{
int n;
scanf("%d", &n);
int i, j;
for (i=1; i<=n; i++)
{
for (j=1; j<=i; j++)
printf("%d*%d=%-4d", j, i, i*j);
puts("");
}

return 0;

}
这段代码没有输出过换行符,但是也输出了有换行符的效果,为什么

使用 puts() 显示字符串时,系统会自动在其后添加一个换行符,比如:
printf("%s\n", name);和:puts(name);是等价的

puts()输出字符串并换行