键盘上输入一个数N,要求打印出行数为2*N-1的由*组成的菱形

C语言,编程题

#include <stdio.h>

void main()

{

 int i, j, k, n;

 printf("请输入正整数n: ");

 scanf("%d", &n);

 while(n!=0)    //设置循环,使程序可以反复输入。当n=0时,结束输入。。

 {

  for(i=1; i<=n; i++)

  {

   for(j=1; j<=n-i; j++)   //设置空格的输出,因为要是棱形,所以要输出空格

   {

    printf(" ");

   }

   for(k=1; k<=2*i-1; k++)   //*号的输出

   {

    printf("*");

   }

   printf("\n");    //i每加1,表示加一行,所以每行结束后要换行

  }

 

  for(i=1; i<=n; i++)    //这段程序是下三角的输出

  {

   for(j=1; j<=i; j++)   //当i=1时,即下三角的第1行,输出1个空格,i=2,时输出2个。

   {

    printf(" ");

   }

   for(k=2*(n-i)-1; k>0; k--)  //因为是下三角,每行的*比上一行的少,所以,k是递减的

   {

    printf("*");

   }

   printf("\n");

  }

  printf("请输入正整数n: ");   //完成一次完整的输出后,再次要求输入n,这样就可以实现循环了。

  scanf("%d",&n); 

 

 }

}

 

运行结果截图如下:

 

 

 

温馨提示:内容为网友见解,仅供参考
第1个回答  2017-10-22
白兔捣药成,问言谁与餐?
第2个回答  2013-04-13
不会
相似回答