初等函数曲线图形的简易绘制:设屏幕显示文本是25行,
80列,可以用“+”和“——〉”号画坐标系,用“*”号画曲线上的点。用户给出初等函数,如cos(x),e^x,x^3
-3x+1等,及x的取值范围,程序绘制出对应初等函数的曲线图。
功能要求:
1.从键盘上输入x的显示范围;
2.根据x的取值范围在屏幕上画出函数图形;
3.函数的选择可以由键盘输入得到。
c语言程序设计绘制函数图形
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- CSDN专家-link 2021-07-05 18:30关注
设定x的步长,先计算出80列的函数值组成数组,然后根据值的大小逐行输出即可
#include <math.h> #define NANCHAR ' ' #define NAN -99999 char grid[25][80]; double data[80]; double dmax = 0; double dmin = 0; //x*x*x-3*x+1 void getminmax(int s,int e) { float step = (e-s)/80.0; int k = 0; for(double i=s;i<=e;i+=step) { double y = i*i*i-3*i+1; //double y = cos(i); if(i==s) dmax = dmin = y; else if(dmax < y) dmax = y; else if(dmin > y) dmin = y; data[k++] = y; } } void getV(int range) { float yscale = (dmax-dmin)/25; //图形适当进行压缩或拉升 float xscale = range/80.0; int k = 0; for(double i=0;i<range;i+=xscale) { if(data[k] != NAN) { int y = int((dmax-data[k])/yscale); int x = int(i/xscale); grid[y][x] = '*'; } k++; } } void display() { int i,j; for(i=0;i<25;i++) { for(j=0;j<80;j++) { printf("%c",grid[i][j]); } printf("\n"); } printf("\n"); } void main() { int i,j; for(i=0;i<25;i++) for(j=0;j<80;j++) grid[i][j] = NANCHAR; for(j=0;j<80;j++) data[j] = NAN; int s,e; scanf("%d%d",&s,&e); getminmax(s,e); getV(e-s); display(); system("pause"); }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 求差集那个函数有问题,有无佬可以解决
- ¥15 【提问】基于Invest的水源涵养
- ¥20 微信网友居然可以通过vx号找到我绑的手机号
- ¥15 寻一个支付宝扫码远程授权登录的软件助手app
- ¥15 解riccati方程组
- ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
- ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
- ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
- ¥50 树莓派安卓APK系统签名
- ¥65 汇编语言除法溢出问题