输入n,输出2*n-1行的菱形图形
时间: 2023-12-30 20:04:41 浏览: 78
以下是Python代码实现:
```python
n = int(input("请输入菱形的高度:"))
for i in range(1, n+1):
print(" "*(n-i) + "*"*(2*i-1))
for i in range(1, n):
print(" "*i + "*"*(2*(n-i)-1))
```
输出结果示例(n=4):
```
*
***
*****
*******
*****
***
*
```
解释:首先输入菱形的高度n,然后使用两个循环分别输出上半部分和下半部分的菱形。上半部分的每一行包括两部分:前面的空格和后面的星号,空格数为n减去行数i,星号数为2i-1。下半部分的每一行也包括两部分:前面的空格和后面的星号,空格数为行数i,星号数为2(n-i)-1。
相关问题
c语言 输入n,输出由*构成的菱形和纺锤形,每个图形均为2n-1行.
以下是实现代码:
```c
#include <stdio.h>
int main() {
int n, i, j, k;
printf("请输入n:");
scanf("%d", &n);
// 输出菱形
for (i = 1; i <= 2*n-1; i++) {
k = i <= n ? i : 2*n-i;
for (j = 1; j <= n-k; j++) {
printf(" ");
}
for (j = 1; j <= 2*k-1; j++) {
printf("*");
}
printf("\n");
}
// 输出纺锤形
for (i = 2*n-2; i >= 1; i--) {
k = i <= n ? i : 2*n-i;
for (j = 1; j <= n-k; j++) {
printf(" ");
}
for (j = 1; j <= 2*k-1; j++) {
printf("*");
}
printf("\n");
}
return 0;
}
```
首先输入n,然后按照规律输出菱形和纺锤形。
菱形的行数为2n-1,第i行的星号个数为2i-1。我们可以用一个变量k来表示当前行的星号个数,k的取值范围为1到n,当i<=n时,k=i,否则k=2n-i。
为了保证菱形居中,每行前面需要输出一定数量的空格,数量为n-k。
纺锤形的行数比菱形少1,因此从2n-2开始循环,结束于1。输出原理和菱形一样,只是循环顺序相反,需要先输出下半部分,再输出上半部分。
运行程序,输入n=5时,输出的结果如下:
```
请输入n:5
*
***
*****
*******
*********
*******
*****
***
*
```
输出n*n的菱形图形,控制n错误输入
以下是 Python 代码实现:
n = int(input("请输入一个奇数:"))
while n % 2 == 0:
n = int(input("输入错误,请重新输入一个奇数:"))
for i in range(n):
for j in range(n):
if i < n//2:
if j >= n//2-i and j <= n//2+i:
print("*", end="")
else:
print(" ", end="")
else:
if j >= n//2-(n-i-1) and j <= n//2+(n-i-1):
print("*", end="")
else:
print(" ", end="")
print()