合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。💪🏻
一、标题形貌 ⭐️
习题5
-8 空心的数字金字塔
本题要求实现一个函数,输出n行空心的数字金字塔。
函数接口界说:
- void hollowPyramid( int n );
复制代码 此中n是用户传入的参数,为[1, 9]的正整数。要求函数按照如样例所示的格式打印出n行空心的数字金字塔,请留意,末了一行的第一个数字前没有空格。
裁判测试步调样例:🌰
- #include <stdio.h>
- void hollowPyramid ( int n );
- int main()
- {
- int n;
- scanf("%d", &n);
- hollowPyramid ( n );
- return 0;
- }
- /* 你的代码将被嵌在这里 */
复制代码 输入样例:
输出样例:
二、解题步调 ⭐️
下面以n=5
举例:🦋
总结: 🦋
- 该步调通过嵌套循环实现空心数字金字塔的打印。
- 外层循环控制层数,内层循环分别负责打印空格、数字和空格。
- 第一层和末了一层单独处置处罚,中央层打印数字和空格。
三、代码(C语言)⭐️
- #include <stdio.h>
- void hollowPyramid ( int n );
- int main()
- {
- int n;
- scanf("%d", &n);
- hollowPyramid ( n );
- return 0;
- }
- /* 你的代码将被嵌在这里 */
- void hollowPyramid(int n) {
- // 外层循环:控制金字塔的层数(从1到n)
- for (int i = 1; i <= n; i++) {
- // 内层循环1:打印每一层 第一个字符 前的空格
- for (int j = n - i; j > 0; j--) {
- printf(" "); // 打印每一层 第一个字符 前的空格
- }
- // 判断是否是第一层
- if (i == 1) {
- printf("%d", i); // 打印 第一个数字
- }
- // 判断是否是最后一层
- else if (i == n) {
- // 打印 最后一层的数字
- for (int i = 0; i < 2 * n - 1; i++) {
- printf("%d", n); // 打印 最后一层的数字
- }
- }
- // 处理中间层
- else {
- // 内层循环2:打印非最后一层的数字和空格
- for (int k = i; k > 0; k--) {
- if (k == i) {
- printf("%d ", i); // 打印 第一个数字+一个空格
- } else if (k == 1) {
- printf("%d", i); // 打印 最后一个数字
- } else {
- printf(" "); // 打印 两个空格
- }
- }
- }
- // 换行,进入下一层的打印
- printf("\n");
- }
- }
复制代码
[img]https://i-blog.csdnimg.cn/direct/1fe8d83f7d7d46b49c6edca612fbe5
1b.jpeg[/img]
【留意 📢 】 团结以下文章一起看:🦋
- 练习5
-3 字符金字塔
- 练习2-3 输出倒三角图案
- 习题4-9 打印菱形图案
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |