Step1: 查资料找到样例,意外收获“%-2d”的含义
#include <stdio.h>
int main() {
int i, j; // i, j控制行或列
for (i = 1; i <= 9; i++) {
for (j = 1; j <= 9; j++)
// %2d 控制宽度为两个字符,且右对齐;如果改为 %-2d 则为左对齐
// \t为tab缩进
printf("%d*%d=%2d\t", i, j, i * j);
printf("\n");
}
return 0;
}
Step2.1:了解底层原理
#include<stdio.h>
int main()
{
int i;
for (i = 0; i < 3; i++)//用for循环输出平面矩阵式
{
printf("***\n");
}
return 0;
}
顺利运行但是发现实际应用时的问题“有一百个*难道要一个一个输入吗”
Step2.2:用循环的嵌套简化输入
#include<stdio.h>
int main()
{
int i, j;
for (i = 0; i < 3; i++)//外循环--行
{
for(j = 0;j < 3; j++)//内循环--列
printf("*");
printf("\n");
}
return 0;
}
完成!
ok,现在进入正题“输出九九乘法表”
Step3:TRY!!!!
FIRST TRY:
#include<stdio.h>
int main()
{
int i, j;
for (i = 1; i <= 9; i++)//外循环--行
{
for(j = 1;j <= 9; j++)//内循环--列
printf("%d*%d=%d",i,j,i*j);
printf("\n");
}
return 0;
}
正确的九九乘法表。 get!! 但是...好像不完全正确?
SECOND TRY:运用“%2d”
#include<stdio.h>
int main()
{
int i, j;
for (i = 1; i <= 9; i++)//外循环--行
{
for(j = 1;j <= 9; j++)//内循环--列
printf("%d*%d=%2d",i,j,i*j);
printf("\n");
}
return 0;
}
并没有变化
THIRD TRY:运用“\t”
#include<stdio.h>
int main()
{
int i, j;
for (i = 1; i <= 9; i++)
{
for (j = 1; j <= 9; j++)
printf("%d*%d=%2d\t", i, j, i * j);
printf("\n");
}
return 0;
}
完成啦!!
emmm....好像还是不那么对??小时候看到的好像是三角形的??
//再试试三角形的
#include<stdio.h>
int main()
{
int i, j;
for (i = 1; i <= 9; i++)
{
for (j = 1; j <= i; j++)
printf("%d*%d=%2d\t", i, j, i * j);
printf("\n");
}
return 0;
}
//原理:
//*(0,0)* *
//* *(1,1)*
//* * *(2,2)
呼~看着舒服多了