请应用循环结构编写算法实现如下图所示的n(n为正奇数)行菱型字符图形的输出。例如n=7,ch='*'时:用C语言
时间: 2023-06-16 12:02:30 浏览: 121
以下是用C语言实现的代码:
```c
#include <stdio.h>
int main() {
int n, i, j, k;
char ch;
printf("请输入一个正奇数n和一个字符ch:");
scanf("%d %c", &n, &ch);
// 输出上半部分
for (i = 1; i <= n; i += 2) {
// 输出空格
for (j = 1; j <= (n - i) / 2; j++) {
printf(" ");
}
// 输出字符
for (k = 1; k <= i; k++) {
printf("%c", ch);
}
printf("\n");
}
// 输出下半部分
for (i = n - 2; i >= 1; i -= 2) {
// 输出空格
for (j = 1; j <= (n - i) / 2; j++) {
printf(" ");
}
// 输出字符
for (k = 1; k <= i; k++) {
printf("%c", ch);
}
printf("\n");
}
return 0;
}
```
算法思路:
1. 读入正奇数n和字符ch;
2. 输出上半部分:从第一行开始,每隔两行输出一行字符,输出的字符个数为当前行数i;输出空格的个数为(n - i) / 2;
3. 输出下半部分:从倒数第二行开始,每隔两行输出一行字符,输出的字符个数为当前行数i;输出空格的个数为(n - i) / 2;
4. 输出完毕,程序结束。