编写函数diamond
打印一个菱形。如果调用diamond(3, '*')
则打印:
×
×××
×
如果调用diamond(5, '+')
则打印:
+
+++
+++++
+++
+
如果用偶数做参数则打印错误提示。
/* 每一行的星号和空格的数量是纵坐标i的函数关系,由于图形关于横轴对称,因此字符的数量就和字符的纵坐标距离中间位置的距离有关,这个距离就是纵坐标减去中间位置纵坐标的绝对值。
By LYLtim */
#include<stdio.h>
#include<math.h>
void diamond(int n, char c)
{
int i;
for (i = 1; i <= n; i++) {
int d = abs(i - n / 2 - 1), j;
for (j = 1; j <= d; j++) printf(" ");
for (j = 1; j <= (n / 2 + 1 - d) * 2 - 1; j++) printf("%c", c);
printf("\n");
}
}
int main()
{
int n;
char c;
printf("Input n,c:");
scanf("%d,%c", &n, &c);
if (n % 2 == 0) printf("error\n");
else diamond(n, c);
}