/*顯示餘弦曲線的函數*/
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");
}
}
以上爲自己測試成功的代碼
當然還會有更爲簡單或簡潔的算法,歡迎大家提出建議和意見!