#include<stdio.h> int main() { int h=0,l=0; for(l=1;l<=9;l++) { printf("%-4d",l);//%4d就是空三格,有一格留给下一个数字,而纯%4d输出的第一个数字也会有空格 } printf("\n"); for(l=1;l<=9;l++) { printf("_ "); } printf("\n"); for(h=1;h<=9;h++) { for(l=1;l<=9;l++) { printf("%-4d",h*l); } printf("\n"); } printf("\n"); //上三角 for(l=1;l<=9;l++) { printf("%-4d",l); } printf("\n"); for(l=1;l<=9;l++) { printf("_ "); } printf("\n"); for(h=1;h<=9;h++) { for(l=1;l<=h;l++)//第一行一个,第二行两个,然后一行行递增直至到九个,意思就是循环1,2..... 9次 ,因为h也是这样递增,条件用h控制 { printf("%-4d",h*l); } printf("\n"); } printf("\n"); //下三角 for(l=1;l<=9;l++) { printf("%-4d",l); } printf("\n"); for(l=1;l<=9;l++) { printf("_ "); } printf("\n"); for(h=1;h<=9;h++) { for(l=2;l<=h;l++)//看题目先会有空格然后数字且一行行递减,要实现如果没有先空格则每一行的数字会顶格 { printf(" "); } for(l=h;l<=9;l++)//因为是一行行递减,而h是递增的,可以放<左侧实现递减 { printf("%-4d",h*l); } printf("\n"); } return 0; }
输出:
1 2 3 4 5 6 7 8 9
_ _ _ _ _ _ _ _ _
1 2 3 4 5 6 7 8 9
2 4 6 8 10 12 14 16 18
3 6 9 12 15 18 21 24 27
4 8 12 16 20 24 28 32 36
5 10 15 20 25 30 35 40 45
6 12 18 24 30 36 42 48 54
7 14 21 28 35 42 49 56 63
8 16 24 32 40 48 56 64 72
9 18 27 36 45 54 63 72 81
1 2 3 4 5 6 7 8 9
_ _ _ _ _ _ _ _ _
1
2 4
3 6 9
4 8 12 16
5 10 15 20 25
6 12 18 24 30 36
7 14 21 28 35 42 49
8 16 24 32 40 48 56 64
9 18 27 36 45 54 63 72 81
1 2 3 4 5 6 7 8 9
_ _ _ _ _ _ _ _ _
1 2 3 4 5 6 7 8 9
4 6 8 10 12 14 16 18
9 12 15 18 21 24 27
16 20 24 28 32 36
25 30 35 40 45
36 42 48 54
49 56 63
64 72
81