题目描述
模仿例题,打印出不同方向的正方形,然后打印三角形矩阵。中间有个空行。
输入格式
输入矩阵的规模,不超过 9 9 9。
输出格式
输出矩形和正方形
1.题目分析
循环判断就可以解决,总的来说,是个比较简单的打印题。
2.题目思路
第一个图形:循环n的平方次,打印1到n*n,个位数做补零的判断,当i为n的倍数时,打印换行。
第二个图形:两个循环,分别循环n次,外循环每次结束后换行,在内循环中,当j == n-i-1时,记录当前是第几行,其他情况都打印空格,值得一提的是,每一个数都占两个空格,
记录到第几行之后,在第(n - i +1)列处打印i个自然数,个位数进行补零判断,自然数加一。
3.代码演示
#include <stdio.h>int main() {int n;scanf("%d", &n);int count = 1;int temp = 0;int num = 1;//打印第一个图形for (int i = 1; i <= n * n; ++i) {//个位数前置补零if (i > 0 && i < 10) {printf("0%d", i);} else {printf("%d", i);}//换行判断if (i == count * n) {printf("\n");count++;}}printf("\n");//打印第二个图形for (int i = 1; i <= n; ++i) {for (int j = 1; j <= n; ++j) {//记录是第i行//判断空格的打印if (j == n - i + 1) {temp = i;} else {printf(" ");}//实现i行打印i个数while (temp > 0) {if (num > 0 && num < 10) {printf("0%d", num);} else {printf("%d", num);}num++;temp--;}}printf("\n");}return 0;
}