打印图案

程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat (0<repeat<10),做repeat次下列操作:
输入一个正整数n,打印一个边长为 n 的菱形图案。
输出使用以下语句:
printf(" ");
printf("* ");
printf("\n");
输入输出示例:括号内为说明
输入
2        (repeat=2)
3        (n=3) 
4        (n=4) 
输出
    *   (n=3的菱形图案)
  * * * 
* * * * *
  * * *
    *
      * (n=4的菱形图案)
    * * * 
  * * * * *
* * * * * * *
  * * * * *
    * * *
      *
#include "stdio.h"
int main(void)
{
    int i, j, n;
    int repeat, ri; 
	
    scanf("%d", &repeat);
    for(ri = 1; ri <= repeat; ri++){
        scanf("%d", &n);
	for(j = n; j > 0; j--)
	{
		for(i = 1; i<= 2*(j-1);i++)
			printf(" ");
		for(i = 1; i <= (2*(n+1-j)-1);i++)
			printf("* ");
		printf("\n");
	 } 
	 for(j = 1; j <= n-1;j++)
	 {
	 	for(i = 1; i <= 2*j;i++)
	 		printf(" ");
	 	for(i = (2*(n-j)-1); i >= 1;i--)
	 		printf("* ");
	 		printf("\n");	
	 }

    }
}

### C语言实现打印图案示例 以下是基于提供的引用内容以及C语言的相关知识,展示如何通过代码实现打印空心正方形和中空菱形图案。 #### 空心正方形的实现 下面是一个用于打印空心正方形的C语言代码示例。此代码允许用户入正方形的边长,并利用嵌套循环来构建图形: ```c #include <stdio.h> int main() { int n, i, j; printf("请入正方形的边长: "); scanf("%d", &n); for (i = 1; i <= n; i++) { for (j = 1; j <= n; j++) { if (i == 1 || i == n || j == 1 || j == n) printf("* "); else printf(" "); } printf("\n"); } return 0; } ``` 上述代码的核心逻辑在于判断当前列位置是否位于边界上。如果满足条件,则打印星号`*`;否则打印空白字符[^1]。 --- #### 中空菱形的实现 对于中空菱形打印,可以通过增加额外的控制条件来完成。以下是一段完整的C语言代码示例: ```c #include <stdio.h> void printHollowDiamond(int size) { int i, j; // 上半部分(含中间) for (i = 1; i <= size; i++) { for (j = 1; j <= size - i; j++) printf(" "); for (j = 1; j <= 2 * i - 1; j++) { if (j == 1 || j == 2 * i - 1) printf("*"); else printf(" "); } printf("\n"); } // 下半部分 for (i = size - 1; i >= 1; i--) { for (j = 1; j <= size - i; j++) printf(" "); for (j = 1; j <= 2 * i - 1; j++) { if (j == 1 || j == 2 * i - 1) printf("*"); else printf(" "); } printf("\n"); } } int main() { int size; printf("请菱形的高度(奇数): "); scanf("%d", &size); printHollowDiamond(size); return 0; } ``` 这段代码分为两部分:上半部负责绘制顶部到中心的部分,下半部则处理底部区域。通过调整`if`语句中的条件可以精确控制哪些位置显示星号[^2]。 --- #### 自定义中空菱形扩展功能 为了进一步增强灵活性,可以让用户指定更多参数,比如填充符或其他特殊符号作为边缘标记。这需要修改函数接口并引入新的变量存储这些选项。 ```c // 添加自定义符号支持 char edgeSymbol = '*'; printf("请入边缘使用的符号: "); scanf(" %c", &edgeSymbol); for (j = 1; j <= 2 * i - 1; j++) { if (j == 1 || j == 2 * i - 1) printf("%c", edgeSymbol); else printf(" "); } ``` 以上片段展示了如何让用户决定使用何种字符构成菱形轮廓[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值