本帖最后由 余丽丽 于 2015-6-6 22:40 编辑
我自己试着写了以下99乘法表,但是我无意中发现一个问题,不知道是什么原理,刚开始的写法:
#include <stdio.h>
int main(int argc, const char * argv[]) { for (int i=1; i<10; i++) { for (int j=1; j<i+1; j++) { printf("%d*%d=%d\t",i,j,i*j); } printf("\n"); } return 0; } 运行结果:
后来改成:
#include <stdio.h>
int main(int argc, const char * argv[]) { for (int i=1; i<10; i++) { for (int j=1; j<i+1; j++) { printf("%d*%d=%d \t",i,j,i*j); } printf("\n"); } return 0; }
运行结果:
其实这两种写法只是printf("%d*%d=%d\t",i,j,i*j);改成printf("%d*%d=%d \t",i,j,i*j);而已;
后来我多次测试发现%d*%d=%d\t这部分无论在哪里加空格,对齐效果都是正常的,唯有没有加空格的时候就出现第一种现象;
请问是什么原因?
|