编写一个程序,输入一个数 n,使其能够输出最中间一行(菱形 的水平对角线)字符个数为 n 的菱形。(输入的数保证为正奇数)
##代码:
#include <stdio.h>
int main()
{
int n,a,b,c;
printf("输入一个正奇数n,输出最中间一行'*'个数为n的菱形。\n");
printf("请输入一个数。\n");
scanf("%d",&n);
if(n%2==0||n<=0)
printf("输入数据错误");
else
{ for(a=1;a<=(n+1)/2;a++) *//中间及以上的行数为(n+1)/2,所以上半部分循环的次数为(n+1)/2*
{
for(b=1;b<=(n+1)/2-a;b++) *//每一行左半边的空格数为(n+1)/2-所在行数*
printf(" ");
for(c=1;c<=2*a-1;c++) *//*的个数为行数的二倍减一*
printf("*");
printf("\n");
}
for(a=1;a<=(n-1)/2;a++) *//下半部分的行数比上半部分少一*
{
for(b=1;b<=a;b++) *//空格数依次增加*
printf(" ");
for(c=1;c<=n-2*a;c++) *//*数依次减少*
printf("*");
printf("\n");
}
}
system("pause");
return 0;
}
##效果图: