3663. 打印数字菱形 ⭐️类型:模拟 📖题目链接:3663. 打印数字菱形
📚题目: 
⭐️思路1:自己做:
打印菱形题目: 1、首先分成 正三角形 和 倒三角形 打印; 2、找到 行号 与 空格数 、该行最大数 的关系,列出表达式; 3、按 行号、打印空格、打印0、打印数字、打印0 的顺序编写代码。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
using namespace std;
int main() {
int n ;
scanf("%d", &n);
for (int i = 0;i <= n;i++) { // 控制行号
for (int j = 2 * n – 2 * i;j > 0;j—) { // 打印空格
printf(" ");
}
printf("0 "); // 打印开头0
if (i != 0) { // 打印每行数字部分
for (int k = 1;k <= i;k++) {
printf("%d ", k);
}
for (int k = i – 1;k > 0;k—) {
printf("%d ", k);
}
}
if (i != 0) { // 打印结尾0
printf("0 ");
}
printf("\\n");
}
for (int i = 0;i <= n – 1;i++) {
for (int j = i * 2 + 2;j > 0;j—) {
printf(" ");
}
printf("0 ");
if (i != n – 1) {
for (int k = 1;k <= n – i –1;k++) {
printf("%d ", k);
}
for (int k = n – i –2;k > 0;k—) {
printf("%d ", k);
}
}
if (i != n – 1) {
printf("0 ");
}
printf("\\n");
}
return 0;
}
⭐️思路2:利用数组和字符串
#include <stdio.h>
#include <string.h>
using namespace std;
int main() {
char str[1000] = { 0 };
char arr[100][100] = { 0 };
//int i;
//for (i = 0; i < 10; ++i) {
//str[i] = ' ';
//}
//str[i] = '0';
//printf("%s\\n", str);
//memset(str, 0, 1000);
//for (i = 0; i < 8; ++i) {
//str[i] = ' ';
//}
//for (int j = 0; j <= 1; ++j) {
//str[i] = '0' + j;
//str[i + 1] = ' ';
//i = i + 2;
//}
//str[i] = '0';
//printf("%s\\n", str);
int n;
scanf("%d", &n);
int i = 0;
for (i = 0; i <= n; ++i) {
int j = 0;
//memset(str, 0, 1000);
for (j = 0; j < 2 * n – 2 * i; ++j) {
//arr[i][j] = ' ';
arr[i][j] = ' ';
}
for (int k = 0; k <= i; ++k) {
arr[i][j] = '0' + k;
arr[i][j + 1] = ' ';
j = j + 2;
}
for (int k = i – 1; k >= 0; —k) {
arr[i][j] = '0' + k;
arr[i][j + 1] = ' ';
j = j + 2;
}
//printf("%s\\n", str);
}
for (i = n + 1; i <= 2 * n; ++i) {
int j = 0;
memset(str, 0, 1000);
for (j = 0; j < 2 * i – 2 * n; ++j) {
arr[i][j] = ' ';
}
for (int k = 0; k <= 2*n – i; ++k) {
arr[i][j] = '0' + k;
arr[i][j + 1] = ' ';
j = j + 2;
}
for (int k = 2*n –i – 1; k >= 0; —k) {
arr[i][j] = '0' + k;
arr[i][j + 1] = ' ';
j = j + 2;
}
//printf("%s\\n", str);
}
for (int i = 0; i < 2 * n + 1; ++i) {
printf("%s\\n", arr[i]); // 打印整行
}
return 0;
}
![P1328 [NOIP 2014 提高组] 生活大爆炸版石头剪刀布-171主机测评](https://www.171host.com/wp-content/uploads/2026/07/20260726085820-6a65cc2cd5b82-220x150.png)



