/**
、编写函数diamond打印一个菱形。如果调用diamond(3, '*'),则打印:
*
* * *
*
如果调用diamond(5, '+'),则打印:
+
+ + +
+ + + + +
+ + +
+
如果用偶数做参数则打印错误信息。
**/
#include <stdio.h>
#include <stdlib.h>
int is_blank(int row,int n,int col){
int mid=(n+1)/2;
if(row>mid){
int newRow=2*mid-row;
row=newRow;
}
for(int i =0;i<row;i++){
if((n-2*i)==col||(n+2*i)==col){
return 0;
}
}
return 1;
}
void diamond(int n,char c){
if(n%2==0){
printf("n can not be even");
exit(1);
}
for(int i=1;i<=n;i++){
for(int j=0;j<2*n;j++){
if(is_blank(i,n,j)){
printf(" ");
}else{
printf("%c",c);
}
}
printf("\n");
}
}
int main(void){
char c='+';
diamond(3,c);
diamond(5,c);
diamond(7,c);
}