请应用循环结构编写算法实现如下图所示的n(n为正奇数)行菱型字符图形的输出。例如n=7,ch='*'时: 使用c语言
时间: 2024-05-05 11:19:21 浏览: 102
实现如下:
```c
#include <stdio.h>
int main() {
int n, i, j, k;
char ch;
printf("请输入一个正奇数n:\n");
scanf("%d", &n);
printf("请输入一个字符ch:\n");
scanf(" %c", &ch); // 注意加一个空格避免缓冲区的回车影响
for (i = 1; i <= n; i++) { // 上半部分
for (j = i; j < n; j++) // 打印空格
printf(" ");
for (k = 1; k < 2 * i; k++) // 打印字符
printf("%c", ch);
printf("\n"); // 换行
}
for (i = n - 1; i >= 1; i--) { // 下半部分
for (j = i; j < n; j++) // 打印空格
printf(" ");
for (k = 1; k < 2 * i; k++) // 打印字符
printf("%c", ch);
printf("\n"); // 换行
}
return 0;
}
```
解释一下:
- 输入正奇数n和一个字符ch。
- 先输出上半部分,循环i从1到n,表示每一行。在每一行里,先输出n-i个空格,再输出2i-1个字符。
- 再输出下半部分,循环i从n-1到1,表示每一行。在每一行里,也是先输出n-i个空格,再输出2i-1个字符。
- 输出完毕。
阅读全文