左对齐、右对齐的9X9乘法表
一、分析:
1、可将乘法表视为一个二维的平面系,横轴和纵轴各代表一个乘数,所以共需要两个变量。
3、左对齐时由于横坐标和纵坐标都是从1—9进行累加,所以可以用两次循环语句。
右对齐时由于需要控制空格的数量所以需要多加一个循环,共需三个循环结构。
2、对齐方式:每个乘式之间用制表符(tab键)分开,每行之间换行分布。
二、逻辑图:
三、代码(以C语言为例):
左对齐
每行的等式数递增:
#include<stdio.h>
int main(){
int a,b;
printf("\t\t\tThis is the 9*9 table.\n");
for (a=1;a<=9;a++) {
for (b=1;b<=a;b++) {
printf("%dx%d=%d\t",a,b,a*b);
}
printf("\n");
}
}
输出结果:
每行的等式数递减:
#include <stdio.h>
int main(){
int a;
int b;
printf("\t\t\tThis is the 9*9 table.\n");
for (a=9; a>=1; a--) {
for (b=1; b<=a; b++) {
printf("%dx%d=%d\t",a,b,a*b);
}
printf("\n"); }
}
输出结果:
右对齐
每行等式数递增
#include<stdio.h>
int main(){
int a,b,c;
printf("\t\t\tThis is the 9*9 table.\n");
for (a=1;a<=9;a++) {
for(c=1;c<=9-a;c++)
printf("\t");
for (b=1;b<=a;b++) {
printf("%dx%d=%d\t",a,b,a*b);
}
printf("\n");
}
}
输出结果:
每行等式数递减
#include <stdio.h>
int main(){
int a,b;
printf("\t\t\tThis is the 9*9 table.\n");
for(a=9;a>=1;a--){
for(b=1;b<=9-a;b++)
printf("\t");
for(b=a;b>=1;b--){
printf("%dx%d=%d\t",a,b,a*b);
}
printf("\n");
}
}
输出结果: