如何仅使用2个for循环打印星形图案

时间:2014-06-27 09:07:15

标签: c

我想打印这种图案[半钻石形状]

  *
 * *
* * *

使用2 for循环 通过使用3 for for循环

可以很容易地打印出这种模式
#include<conio.h>
#include<stdio.h>

void main()
{
  clrscr();
  int i,j,k;
  for(i=0;i<3;i++) //loop for number of lines
  {
      for(j=3;j>i;j--) // loop for printing _ 
      {
        printf(" ");
      }
      for(k=0;k<=i;k++) // loop for printing *_
      {
        printf("* ");
      }
      printf("\n");
  }
  getch();
}

所以请帮助我......

1 个答案:

答案 0 :(得分:0)

int i,j;
for(i=0;i<N;++i){
    printf("%*s", N-i-1, "");//field width specification
    for(j=0;j<=i;++j){
        printf("*");
        if(j<i)
            printf(" ");
    }
    printf("\n");
}

#define N 3
...
char line[(N-1)+1+2*(N-1)]={0};//pre , *, "* "*(N-1)
int i,j,k;
for(k=0, i=N-1;k<N;i+=2,++k){
    line[i] = '*';
    for(j=k;j<=i;++j){
        putchar(line[j] ? line[j] : ' ');
    }
    putchar('\n');
}