#include<stdio.h>
#include<math.h>
#define PI 3.1415926
int main()
{
printf("y=sin(x)\n");
double x, y, m;
for (y = 1; y >= 0; y -= 0.1)//分上下两部分打印,程序是从上到下输出,先打印上部分的
{
m = asin(y)*10;//反三角
for (x = 1; x < m; x++)//上半部分为半个周期,长度为PI
{
printf(" ");
}
printf("*");
for (; x < PI * 10 - m; x++)//对称轴为PI/2,第一个*的位置与第二个*位置之和为PI
{
printf(" ");
}
printf("*\n");
}
for (y = 0; y >= -1; y -= 0.1)//打印下半部分
{
m = (PI + asin(-y)) * 10;
for (x = 1; x < m+2; x++)//这个+2为微调
{
printf(" ");
}
printf("*");
for (; x < 3*PI * 10 - m+2; x++)//对称轴为3PI/2,两个*位置之和为3PI
{
printf(" ");
}
printf("*\n");
}
}
效果如下: