输出星型图案 c语言

来源:百度知道 编辑:UC知道 时间:2024/05/14 07:26:07
用c语言写一个程序,能实现以下功能:(输出图案)
*
***
*****
***
*
如上图是一个7行7列的图形,现要求输入整数n(奇数),则输出一个n行n列的上述图形,用C语言能实现吗?或先指定n(如n=101)呢?
上面这个图形有点问题,即要求左右空格都是对称的(也就是星号都是居中的,每行依次输出1,3,5,7,。。个星型,整个图形完全对称的),因为排版的原因不能正确显示,请注意!

1.这是一个输出n行n列的星形图案程序
#include<stdio.h>
#define N 7
int main(int argc,char *argv[])
{
int i,j,k;
for(i=0;i<=N/2;i++)
{
for(j=0;j<=N/2-1-i;j++)
printf(" ");
for(k=0;k<=2*i;k++)
printf("*");
printf("\n");
}
for(i=0;i<=N/2-1;i++)
{
for(j=0;j<=i;j++)
printf(" ");
for(k=0;k<=N/2+1-2*i;k++)
printf("*");
printf("\n");
}
return 0;
}
2.这是一个输出ln行col列星形图案的程序,当ln=col时,和上述程序功能一样,只是实现的算法不同
#include<stdio.h>
#define ln 21
#define col 21
int main(int argc,char *argv[])
{
int i,j,k=ln/2,t,x;
char a[ln][col];
for(i=0;i<ln;i++)
for(j=0;j<col;j++)
a[i][j]=' ';

for(i=0;i<=ln/2;i++){
t=k;
for(j=1;j<=2*i+1;j++)
{
a[i][t]='*';
t++