/*显示余弦曲线的函数*/
void drawcos()
{
double y;
int x,m;
for(y=1; y>=0; y-=0.1)
{
m = acos(y)*10;
for (x=0; x<=62; x++)
{
if (x==m || x==62-m)
{
printf("*");
}
else
{
printf(" ");
}
}
printf("\n");
}
for(y=-0.1; y>=-1; y-=0.1)
{
m = acos(y)*10;
for(x=0; x<=62; x++)
{
if (x==m || x==62-m)
{
printf("*");
}
else
{
printf(" ");
}
}
printf("\n");
}
}
/*显示正弦曲线的函数*/
void drawsin()
{
double y;
int x, m;
for(y=1; y>=0; y-=0.1)
{
m = asin(y)*10;
for (x=0; x<=62; x++)
{
if (x==m || x==31-m)
{
printf("*");
}
else
{
printf(" ");
}
}
printf("\n");
}
for(y=-0.1; y>=-1; y-=0.1)
{
m = -asin(y)*10;
for(x=0; x<=62; x++)
{
if (x==31+m || x==62-m)
{
printf("*");
}
else
{
printf(" ");
}
}
printf("\n");
}
}
/*同时显示正弦曲线和余弦曲线 */
void drawcossin()
{
double y;
int x, m, n;
for(y=1; y>=0; y-=0.1)
{
m = asin(y)*10;/*计算正弦值,扩大10倍显示*/
n = acos(y)*10;/*计算余弦值,扩大10倍显示*/
for(x=0; x<=62; x++)
{
if(x==m && x==n)
{
printf("+");
}
else if (x==m || x==31-m)
{
printf("*");/*正弦曲线显示符号*/
}
else if (x==n || x==62-n)
{
printf("+");/*余弦曲线显示符号*/
}
else
{
printf(" ");
}
}
printf("\n");
}
for(y=-0.1; y>=-1; y-=0.1)
{
m = -asin(y)*10;
n = acos(y)*10;
for(x=0; x<=62; x++)
{
if(x==m && x==n)
{
printf("+");
}
else if (x==31+m || x==62-m)
{
printf("*");/*正弦曲线显示符号*/
}
else if (x==n || x==62-n)
{
printf("+");/*余弦曲线显示符号*/
}
else
{
printf(" ");
}
}
printf("\n");
}
}
以上为自己测试成功的代码
当然还会有更为简单或简洁的算法,欢迎大家提出建议和意见!