本题要求编写程序,打印一个高度为n的、由“*”组成的正菱形图案。 输入格式: 输入在一行中给出一个正的奇数n。 输出格式: 输出由n行星号“*”组成的菱形,如样例所示。每个星号后跟一个空格。
时间: 2023-09-26 08:07:08 浏览: 233
C语言程序设计-编写程序打印*菱形 * *** ***** *******
### 回答1:
请输入一个正的奇数:
```
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n-i;j++)
cout<<" ";
for(int k=1;k<=2*i-1;k++)
cout<<"*"<<" ";
cout<<endl;
}
for(int i=n-1;i>=1;i--)
{
for(int j=1;j<=n-i;j++)
cout<<" ";
for(int k=1;k<=2*i-1;k++)
cout<<"*"<<" ";
cout<<endl;
}
return 0;
}
```
### 回答2:
题目要求编写一个程序,打印一个高度为n的正菱形图案,菱形由星号“*”组成。输入为一个正的奇数n。
首先,我们可以将菱形分为两部分,上部分和下部分。菱形总共有n行,上部分由(n+1)/2行组成,下部分由(n-1)/2行组成。
对于上部分,我们观察每行星号的数量和空格的数量,可以发现每行星号的数量从1递增到(n+1)/2,空格的数量从(n-1)/2递减到0。根据这个规律,可以编写一个循环打印上部分,每行的星号数量为i,空格数量为(n-1)/2-i,共打印(n+1)/2行。
对于下部分,我们观察每行星号的数量和空格的数量,可以发现每行星号的数量从(n-1)/2递减到1,空格的数量从0递增到(n-1)/2。根据这个规律,可以编写一个循环打印下部分,每行的星号数量为(n+1)/2-i,空格数量为i,共打印(n-1)/2行。
最后,我们将上部分和下部分合并打印完成整个菱形。
以下是用Python编写的程序实现:
```python
n = int(input()) # 输入正奇数n
# 打印上部分
for i in range((n + 1) // 2):
print(" " * ((n - 1) // 2 - i), end="")
print("* " * (i + 1))
# 打印下部分
for i in range((n - 1) // 2):
print(" " * (i + 1), end="")
print("* " * ((n + 1) // 2 - i - 1))
```
例如,输入5,输出如下:
```
*
* *
* * *
* *
*
```
输入9,输出如下:
```
*
* *
* * *
* * * *
* * * * *
* * * *
* * *
* *
*
```
### 回答3:
可以使用两层循环来实现这个任务。第一层循环用来控制打印的行数,第二层循环用来控制每一行的打印内容。
具体的代码如下:
```python
n = int(input()) # 输入菱形的高度
# 打印上半部分的菱形
for i in range(1, n+1, 2):
# 打印每一行的空格
for j in range((n-i)//2):
print(" ", end="")
# 打印每一行的星号
for j in range(i):
print("* ", end="")
print() # 换行
# 打印下半部分的菱形
for i in range(n-2, 0, -2):
# 打印每一行的空格
for j in range((n-i)//2):
print(" ", end="")
# 打印每一行的星号
for j in range(i):
print("* ", end="")
print() # 换行
```
例如,如果输入为7,那么输出结果为:
```
*
* * *
* * * * *
* * *
*
```
阅读全文