输出菱形
#include<stdio.h>#include<Windows.h>
void get_space(int n)
{
int i ;
for(i = 0; i < n; i++)
printf(" ");
}
void get(int n,int mid)
{
int i;
get_space(mid);
for(i = 0; i < n;i++)
{
printf("%c",'*');
get_space(1);
}
putchar('\n');
}
void up_and_down(int n,int i,int mid,int t)
{
get(i,mid -1);
if(i < n)
up_and_down(n - 1,i + 1,mid - 1,t);
if(i != t)
get(i,mid - 1);
}
int main(void)
{
int i , layer, mid;
printf("请输入菱形层数:(奇数)");
scanf("%d",&layer);
mid = layer /2 + 1;
up_and_down(layer,1,mid,mid);
system("pause");
return 0;
}
利用递归画出菱形,不过总感觉不太完美。
页:
[1]