#include<stdio.h>
#include<math.h>
main()
{
double y;
double x,m;
for(y = 1;y >= 0;y-= 0.1)
{
m = asin(y)*10;
for(x = 1;x < m;x++)
printf(" ");
printf("*");
for(;x < 31-m;x++)
printf(" ");
printf("*\n");
}
for(y = -0.1;y >= -1;y-= 0.1)
{
m = asin(y)*10+62;
for(x = 1;x < 94-m;x++)
printf(" ");
printf("*");
for(; x < m;x++)
printf(" ");
printf("*\n");
}
return 0;
}
本题是运用y = sin x 函数在【0,π/2】上的函数图像,通过对它进行对称和平移的方法得到完整的图像。例如,在【0,π】上, sin x 的图像为 x = π/2,所以利用x < m 和x < 31-m打出 x 在【0,π】上的图像同时利用 y = sin x 在【-π/2,0】上的图像平移π得到其在【π,3π/2】上的图像在利用对称轴 x = 3π/2 得到另一半的图像,最终得到完整的 y = sin x 的图像。