初等函数曲线的简易绘制
#include <stdio.h>
#include <math.h>
#include <string.h>
#include<windows.h>
int main()
{ int m=1;
while(m>0)
{
int i,j,sc[25][80]={0};char s[10];
double x,y,pi,xmax,xmin,ymin,ymax;
pi=3.1415926535;
xmin=-2;
xmax=2;
ymin=-2;
ymax=2;
i=(int)(-24.0*ymax/(ymin-ymax));
for(j=0;j<80;j++)
sc[i][j]=2;
j=(int)(-80.0*xmin/(xmax-xmin));
for(i=0;i<25;i++)
sc[i][j]=3;
printf("请输入要绘制的函数表达式:\n");
gets(s);
if(strcmp(s,"y=x*x")==0) //对y=x*x画函数图
{
for(i=0;i<25;i++)
for(j=0;j<80;j++)
{
x=(xmax-xmin)*j/80.0+xmin;
y=(ymin-ymax)*i/24.0+ymax;
if(fabs(y-x*x)<0.05) sc[i][j]=1;
}
}
if(strcmp(s,"y=sinx")==0) //对y=sinx画函数图
{
for(i=0;i<25;i++)
for(j=0;j<80;j++)
{
x=(xmax-xmin)*j/80.0+xmin;
y=(ymin-ymax)*i/24.0+ymax;
if(fabs(y-sin(x))<0.05) sc[i][j]=1;
}
}
if(strcmp(s,"y=cosx")==0) //对y=cosx画函数图
{
for(i=0;i<25;i++)
for(j=0;j<80;j++)
{
x=(xmax-xmin)*j/80.0+xmin;
y=(ymin-ymax)*i/24.0+ymax;
if(fabs(y-cos(x))<0.05) sc[i][j]=1;
}
}
for(i=0;i<25;i++)
{ //建立坐标系
printf("\n");
for(j=0;j<79;j++)
switch(sc[i][j])
{
case 0:printf(" ");break;
case 1:printf("*");break;
case 2:printf("-");break;
case 3:printf("|");break;
}
}
int z;
scanf("%d",&z); //屏幕清零
if(z<10)
system("cls");
m=m++;
}
}
运行结果如下