通过一行一行分别计算*的位数,在进行打印
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
main()
{
double y,pi=3.14;
int x,m;
for(y=1;y>=-1;y-=0.1) //y为列方向,值从-1到1,步长为0.1
{
m=(int)(acos(y)*10);//计算y对应的弧度m,乘以10为图形放大的倍数
for(x=0;x<m;++x)
printf(" ");
printf("*"); //打印左侧*号
for(;x<(int)(2*10*pi)-m;++x)
printf(" ");
printf("*\n");
}
system("pause");
return 0;
}