c++输出边长为n的菱形
时间: 2024-05-09 11:20:58 浏览: 92
以下是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))
```
输出结果示例:
```
请输入菱形边长:5
*
***
*****
*******
*********
*******
*****
***
*
```
解释:
第一个循环输出菱形的上半部分,第二个循环输出菱形的下半部分。在每一行中,星号数量为2i+1,空格数量为n-i-1,其中i为行数(从0开始)。上半部分的行数是从0到n-1,下半部分的行数是从n-2到0。
相关问题
C++输出一个空心菱形
以下是 C++ 输出一个空心菱形的代码:
```cpp
#include <iostream>
using namespace std;
int main() {
int n;
cout << "请输入菱形的边长(奇数):";
cin >> n;
// 输出上半部分
for (int i = 1; i <= n; i += 2) {
for (int j = 0; j < (n - i) / 2; j++)
cout << " ";
cout << "*";
for (int j = 0; j < i - 2; j++)
cout << " ";
if (i != 1)
cout << "*";
cout << endl;
}
// 输出下半部分
for (int i = n - 2; i >= 1; i -= 2) {
for (int j = 0; j < (n - i) / 2; j++)
cout << " ";
cout << "*";
for (int j = 0; j < i - 2; j++)
cout << " ";
if (i != 1)
cout << "*";
cout << endl;
}
return 0;
}
```
输出结果:
```
请输入菱形的边长(奇数):7
*
* *
* *
* *
* *
* *
*
```
用C++输出一个空心菱形。
以下是用C++输出一个空心菱形的代码:
```
#include <iostream>
using namespace std;
int main() {
int n;
cout << "请输入菱形的边长(必须为奇数):";
cin >> n;
if (n % 2 == 0) {
cout << "输入错误,边长必须为奇数!" << endl;
return 0;
}
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n - i; j++) {
cout << " ";
}
for (int j = 1; j <= 2 * i - 1; j++) {
if (j == 1 || j == 2 * i - 1) {
cout << "*";
} else {
cout << " ";
}
}
cout << endl;
}
for (int i = n - 1; i >= 1; i--) {
for (int j = 1; j <= n - i; j++) {
cout << " ";
}
for (int j = 1; j <= 2 * i - 1; j++) {
if (j == 1 || j == 2 * i - 1) {
cout << "*";
} else {
cout << " ";
}
}
cout << endl;
}
return 0;
}
```
该程序首先要求用户输入菱形的边长,然后判断边长是否为奇数。如果边长为偶数,则输出错误信息;否则,利用两个for循环输出菱形的上半部分和下半部分。在每一行中,首先输出一定数量的空格,然后输出一定数量的星号和空格,其中星号在每一行的开头和结尾处输出,其余位置输出空格。最后,程序输出一个换行符以换行。
阅读全文