青岛开发区网站建设哪家好,win2003创建网站,大型门户网站制作教程,哪些网站是做快消品的【 C语言 】| C程序百例 - 绘制余弦曲线 时间#xff1a;2023年12月29日12:56:29 文章目录 【 C语言 】| C程序百例 - 绘制余弦曲线1.要求2.问题分析与算法设计3.程序3-1.源码3-2.makefile 4.运行 1.要求 在屏幕上用*显示0~360的余弦曲线cos(x)曲线。 2.问题分析与…【 C语言 】| C程序百例 - 绘制余弦曲线 时间2023年12月29日12:56:29 文章目录 【 C语言 】| C程序百例 - 绘制余弦曲线1.要求2.问题分析与算法设计3.程序3-1.源码3-2.makefile 4.运行 1.要求 在屏幕上用*显示0°~360°的余弦曲线cos(x)曲线。 2.问题分析与算法设计 如果在程序中使用数组这个问题十分简单。但若规定不能使用数组问题就变得不容易了。 关键在于余弦曲线在0°~360°的区间内一行中要显示两个点而对一般的显示器来说只能按行输出即输出第一行信息后只能向下一行输出不能再返回到上一行。为了获得本题要求的图形就必须在一行中一次顺序输出两个*。 为了同时得到余弦函数 cos ( x 图形在一行上的两个点考虑利用 cos ( x 的左右对称性。将屏幕的行方向定义为 x 列方向定义为 y 则0°~180°的图形与180°~360°的图形是左右对称的。若定义图形的总宽度为62列计算出 x 行0°~180°时 y 点的坐标 m 那么在同一行与之对称的180°~360°的 y 点的坐标就应为62- m 。程序中利用反余弦函数 acos 计算坐标 x , y )的对应关系。 使用这种方法编出的程序短小精练体现了一定的技巧。 3.程序
3-1.源码 001_cos.c · cProgram/100Example - 码云 - 开源中国 (gitee.com) /******************************************************************** File Name: 001_cos.c* Author: fly* Mail: XXXXXXXXicode.com* Create Time: 2020年06月01日 星期一 09时24分59秒******************************************************************/#include stdio.h
#include math.h
#include debug.hvoid test_acos(void)
{double x 0.0;double y 0.0;int m 0;for(x -1.0; x1.0; x0.1){y acos(x);m y * 10;printf(x %f, y %f[%d]\n, x, y, m);}
}void printf_cos(void)
{printf(Draw Cos(x)\n);double x 0.0, y 0.0;int m, n;for(y 1.0; y -1.0; y-0.1){x acos(y);m x * 10;//printf((%f, %f)%d\n, x,y,m);for(n 0; n m; n)printf( );printf(RED*NONE);for(; n62-m; n)printf( );printf(RED*\nNONE);}
}int main(int argc, char* argv[])
{DBG_PRINTF(Hello, world !\n);//test_acos();printf_cos();return 0;
}#ifndef __DEBUG_H__
#define __DEBUG_H__#include string.h#define DBG_PRINTF_FUNC (1)
#define DBG_PRINTF_SWITCH (1)// color debug
#define NONE \e[m
#define BLACK \e[0;30m
#define RED \e[0;31m
#define GREEN \e[0;32m
#define YELLOW \e[0;33m
#define BLUE \e[0;34m#ifdef DBG_PRINTF_FUNC
#define DBG_PRINTF(fmt, args...) \do{\printf(FILE:BLUE%sNONE LINE:RED%dNONE FUNC:GREEN%sNONE, \strrchr(__FILE__, /)?strrchr(__FILE__, /)1:__FILE__, __LINE__, __FUNCTION__);\printf(fmt, ##args);\}while(0)
#else
#define DBG_PRINTF(fmt, args...)
#endif /* DBG_PRINTF_FUNC */#endif /* __DEBUG_H__ */3-2.makefile
SRC ${wildcard *.c}
BIN ${patsubst %.c, %, $(SRC)}
CFLAGS -g -Wall
#INC -lm
LIBS -lmall:$(BIN)$(BIN):%:%.c$(CC) -o $ $ $(CFLAGS) $(LIBS)clean:$(RM) a.out $(BIN).PHONY:all clean4.运行