📄 scrsho.c
字号:
#include <stdio.h>#define ISCR 60#define JSCR 21#define BLANK ' '#define ZERO '-'#define YY 'l'#define XX '-'#define FF 'x'void scrsho(float (*fx)(float)){ int jz,j,i; float ysml,ybig,x2,x1,x,dyj,dx,y[ISCR+1]; char scr[ISCR+1][JSCR+1]; for (;;) { printf("\nEnter x1 x2 (x1=x2 to stop):\n"); scanf("%f %f",&x1,&x2); if (x1 == x2) break; for (j=1;j<=JSCR;j++) scr[1][j]=scr[ISCR][j]=YY; for (i=2;i<=(ISCR-1);i++) { scr[i][1]=scr[i][JSCR]=XX; for (j=2;j<=(JSCR-1);j++) scr[i][j]=BLANK; } dx=(x2-x1)/(ISCR-1); x=x1; ysml=ybig=0.0; for (i=1;i<=ISCR;i++) { y[i]=(*fx)(x); if (y[i] < ysml) ysml=y[i]; if (y[i] > ybig) ybig=y[i]; x += dx; } if (ybig == ysml) ybig=ysml+1.0; dyj=(JSCR-1)/(ybig-ysml); jz=1-(int) (ysml*dyj); for (i=1;i<=ISCR;i++) { scr[i][jz]=ZERO; j=1+(int) ((y[i]-ysml)*dyj); scr[i][j]=FF; } printf(" %10.3f ",ybig); for (i=1;i<=ISCR;i++) printf("%c",scr[i][JSCR]); printf("\n"); for (j=(JSCR-1);j>=2;j--) { printf("%12s"," "); for (i=1;i<=ISCR;i++) printf("%c",scr[i][j]); printf("\n"); } printf(" %10.3f ",ysml); for (i=1;i<=ISCR;i++) printf("%c",scr[i][1]); printf("\n"); printf("%8s %10.3f %44s %10.3f\n"," ",x1," ",x2); }}#undef ISCR#undef JSCR#undef BLANK#undef ZERO#undef YY#undef XX#undef FF
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -