欢迎光临
我们一直在努力

3663. 打印数字菱形

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;
}

赞(0)
未经允许不得转载:171主机测评 » 3663. 打印数字菱形
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址