虽然我们已经熟悉了 printf,但是还没有把它发挥到极致,printf 可以有更加“炫酷”的输出。 
 
假如现在老师要求我们用C语言输出一个 4×4 的整数矩阵,为了增强阅读性,数字要对齐,怎么办呢?我们显然可以这样来做:- #include <stdio.h>
 - #include <stdlib.h>
 - int main()
 - {
 -     int a1=20, a2=345, a3=700, a4=22;
 -     int b1=56720, b2=9999, b3=20098, b4=2;
 -     int c1=233, c2=205, c3=1, c4=6666;
 -     int d1=34, d2=0, d3=23, d4=23006783;
 -     printf("%d        %d       %d       %d\n", a1, a2, a3, a4);
 -     printf("%d     %d      %d     %d\n", b1, b2, b3, b4);
 -     printf("%d       %d       %d         %d\n", c1, c2, c3, c4);
 -     printf("%d        %d         %d        %d\n", d1, d2, d3, d4);
 -     system("pause");
 -     return 0;
 - }
 
 
  
 
运行结果:20        345       700       2256720     9999      20098     2233       205       1         666634        0         23        23006783矩阵一般在大学的《高等数学》中会讲到,m×n 的数字矩阵可以理解为把 m×n 个数字摆放成 m 行 n 列的样子。 看,这是多么地自虐,要敲那么多空格,还要严格控制空格数,否则输出就会错位。 
 
类似的需求随处可见,整齐的格式会更加美观,让人觉得生动有趣。我们大可不必像上面一样,printf 可以更好的控制输出格式。- #include <stdio.h>
 - #include <stdlib.h>
 - int main()
 - {
 -     int a1=20, a2=345, a3=700, a4=22;
 -     int b1=56720, b2=9999, b3=20098, b4=2;
 -     int c1=233, c2=205, c3=1, c4=6666;
 -     int d1=34, d2=0, d3=23, d4=23006783;
 -     printf("%-9d %-9d %-9d %-9d\n", a1, a2, a3, a4);
 -     printf("%-9d %-9d %-9d %-9d\n", b1, b2, b3, b4);
 -     printf("%-9d %-9d %-9d %-9d\n", c1, c2, c3, c4);
 -     printf("%-9d %-9d %-9d %-9d\n", d1, d2, d3, d4);
 -     system("pause");
 -     return 0;
 - }
 
 
  
 
输出结果:20        345       700       2256720     9999      20098     2233       205       1         666634        0         23        23006783这样写起来更加方便,即使改变某个数字,也无需修改 printf 语句。 
 |