由键盘输入正数n(n<30),要求输出如下2*n+1行的菱形图案。 输出格式 菱形右边不留多余空格 输入样例 2 输出样例 * *** ***** *** *
时间: 2023-11-25 10:50:19 浏览: 198
以下是C语言的代码实现:
```
#include <stdio.h>
int main()
{
int n, i, j, k;
scanf("%d", &n);
for (i = 1; i <= n; i++) {
for (j = 1; j <= n - i; j++) {
printf(" ");
}
for (k = 1; k <= 2 * i - 1; k++) {
printf("*");
}
printf("\n");
}
for (i = n - 1; i >= 1; i--) {
for (j = 1; j <= n - i; j++) {
printf(" ");
}
for (k = 1; k <= 2 * i - 1; k++) {
printf("*");
}
printf("\n");
}
return 0;
}
```
解释如下:
首先,我们需要从键盘输入一个正整数n,表示菱形的大小。然后,我们使用三个循环来打印菱形。第一个循环用来打印上半部分的菱形,第二个循环用来打印下半部分的菱形,第三个循环用来打印每一行的星号。
在第一个循环中,我们使用两个嵌套的循环来打印每一行的空格和星号。第一个循环用来打印空格,它的循环变量j从1到n-i,表示在第i行前面需要打印n-i个空格。第二个循环用来打印星号,它的循环变量k从1到2*i-1,表示在第i行需要打印2*i-1个星号。
在第二个循环中,我们也使用两个嵌套的循环来打印每一行的空格和星号。第一个循环用来打印空格,它的循环变量j从1到n-i,表示在第i行前面需要打印n-i个空格。第二个循环用来打印星号,它的循环变量k从1到2*i-1,表示在第i行需要打印2*i-1个星号。
最后,我们在每一行的末尾打印一个换行符,以便下一行可以从新的一行开始打印。
阅读全文