数学知识的小小应用在C语言中

来源:互联网 发布:淘宝店铺在线人数插件 编辑:程序博客网 时间:2024/05/08 22:40

   *
  ***
 *****
*******
 *****
  ***
   *

在屏幕上输出上面图形

#include <stdio.h>
int main()
{
  int i,j,k,l,m;
  printf("请输入一个整数(1~20):");
  scanf("%d",&l);
  for (i=1; i < 2*l; i++)
  {
    k = i>l ? 2*l-i:i;
    for (m=0; m < l-k; m++)printf(" ");
    for (j=0; j < k; j++) printf("* ");
    printf("/n");
  }
  return 0;
}
结果
请输入一个整数(1~20):5
    *
   * *
  * * *
 * * * *
* * * * *
 * * * *
  * * *
   * *
    *

这个是网络上找的一个答案

------------------------------------------------

 

我们知道在平面坐标里|x|+|y| <=1表示的图形跟上面的一样,所以把它应用在这个程序中,代码如下 :

#include<math.h>

void printstar()
{
 const int n =21;  ///对角线的长度
 char a[n][n] ;
 for(int i = 0; i < n; i++)
 {
  for (int j = 0; j < n; j++)
  {
   if(abs(i-n/2) + abs(j-n/2) <= n/2)
     a[i][j] = '*';
   else
    a[i][j] = ' ';
   cout << a[i][j];
   
  }
  cout << endl;
 }
}