输出n*n的菱形图形,控制n错误输入
时间: 2023-04-08 10:05:17 浏览: 113
以下是 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()
相关问题
输入n,输出2*n-1行的菱形图形
以下是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,输出由*构成的菱形和纺锤形
这里提供两种方法,一种是使用循环语句,另一种是使用递归函数。
方法一:使用循环语句
```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-i; j++) {
printf(" ");
}
for (j = 1; j <= 2*i-1; j++) {
printf("*");
}
printf("\n");
}
for (i = n-1; i >= 1; i--) {
for (j = 1; j <= n-i; j++) {
printf(" ");
}
for (j = 1; j <= 2*i-1; j++) {
printf("*");
}
printf("\n");
}
// 输出纺锤形
printf("\n");
for (i = 1; i <= n; i++) {
for (j = 1; j <= n-i; j++) {
printf(" ");
}
for (j = 1; j <= 2*i-1; j++) {
printf("*");
}
printf("\n");
}
for (i = n-1; i >= 1; i--) {
for (j = 1; j <= n-i; j++) {
printf(" ");
}
for (j = 1; j <= 2*i-1; j++) {
printf("*");
}
printf("\n");
}
for (i = 1; i <= n; i++) {
for (j = 1; j <= i-1; j++) {
printf(" ");
}
for (j = 1; j <= 2*(n-i)+1; j++) {
printf("*");
}
printf("\n");
}
for (i = n-1; i >= 1; i--) {
for (j = 1; j <= i-1; j++) {
printf(" ");
}
for (j = 1; j <= 2*(n-i)+1; j++) {
printf("*");
}
printf("\n");
}
return 0;
}
```
方法二:使用递归函数
```c
#include <stdio.h>
void print_line(int n, int i, int j, char c)
{
if (j <= n-i) {
printf(" ");
print_line(n, i, j+1, c);
} else if (j <= n+i-1) {
printf("%c", c);
print_line(n, i, j+1, c);
} else {
printf("\n");
}
}
void print_diamond(int n, int i, char c)
{
if (i <= n) {
print_line(n, i, 1, c);
print_diamond(n, i+1, c);
} else if (i <= 2*n-1) {
print_line(n, 2*n-i, 1, c);
print_diamond(n, i+1, c);
}
}
void print_rhombus(int n, int i, char c)
{
if (i <= n) {
print_line(n, i, 1, c);
print_rhombus(n, i+1, c);
} else if (i <= 2*n-1) {
print_line(n, 2*n-i, 1, c);
print_rhombus(n, i+1, c);
} else if (i <= 3*n-2) {
print_line(n, i-2*n+2, 1, c);
print_rhombus(n, i+1, c);
} else if (i <= 4*n-3) {
print_line(n, 4*n-i-2, 1, c);
print_rhombus(n, i+1, c);
}
}
int main()
{
int n;
char c = '*';
printf("请输入菱形和纺锤形的大小:");
scanf("%d", &n);
// 输出菱形
print_diamond(n, 1, c);
// 输出纺锤形
printf("\n");
print_rhombus(n, 1, c);
return 0;
}
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)