C程序畫出正弦餘弦曲線

/*顯示餘弦曲線的函數*/
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");
	}
}

以上爲自己測試成功的代碼

當然還會有更爲簡單或簡潔的算法,歡迎大家提出建議和意見!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章