1035+打印菱形图案
时间: 2023-11-12 08:06:02 浏览: 54
题目描述:输入正数n(n<30),要求输出如下2*n+1行的菱形图案。
解题思路:对于上下对称的图形,按行来循环的话可以从负数开始到整数对称,如n=2时,i=-2,-1,0,1,2 ; 对于空格第一行i=-2,输出两个空格,第二行i=-1,输出一个空格,第三行i=0,输出0个空格,以此类推可以发现,i和空格之间是绝对值的关系。对于星号,n=2时,第一行i=-2,输出一个星号,第二行i=-1输出三个星号,第三行i=0,输出五个星号,可以发现n和i和输出的星号之间是2n+1-2abs(i)的关系。 这道题目需要仔细去寻找各个数量之间的关系。
```c
#include "stdio.h"
#include <math.h>
main() {
int n,i,j,k;
scanf("%d",&n);
for(i=-n;i<=n;i++) {
for(j=1;j<=abs(i);j++) printf(" ");
for(k=1;k<=2*n+1-2*abs(i);k++) printf("*");
printf("\n");
}
}
```
相关问题
打印菱形图案
好的,以下是打印菱形图案的 Python 代码:
```python
n = int(input("请输入菱形的边长:"))
for i in range(n):
print(" "*(n-i-1)+"*"*(2*i+1))
for i in range(n-2, -1, -1):
print(" "*(n-i-1)+"*"*(2*i+1))
```
你可以将 `n` 替换为你想要的菱形边长。运行代码后,它会在控制台输出一个菱形图案。
python打印菱形图案
可以使用嵌套循环来打印菱形图案,具体代码如下:
```
n = int(input("请输入菱形的边长:")) # 获取菱形的边长
# 打印上半部分
for i in range(n):
for j in range(n-i-1):
print(" ", end="")
for j in range(2*i+1):
print("*", end="")
print()
# 打印下半部分
for i in range(n-2, -1, -1):
for j in range(n-i-1):
print(" ", end="")
for j in range(2*i+1):
print("*", end="")
print()
```
输入边长为5时,打印出的菱形图案如下:
```
*
***
*****
*******
*********
*******
*****
***
*
```