趣味C程序100.1 .1 绘制余弦曲线
说明:1.本问题来源于《C语言经典、趣味、实用程序设计编程百例精解》,所有程序为本人自己编写。与原程序不同之处作有标记。
2.本系列所有程序均使用codeblocks编译,操作系统为Windows XP。
问题:在屏幕上用“*”显示0~360度的余弦函数cos(x)曲线(不使用数组)
分析:如果在程序中使用数组,这个问题十分简单。但若规定不能使用数组,问题就变得不容易了。关键在于余弦曲线在0~360度的区间内,一行中 要显示两个点,而对于控制台程序来说,只能按行输出,即:输出第一行信息后,只能向下一行输出,不能再返回上一行。为了获得本问题所要求的图形,就必须在一行中一次输出两个“*”。
#include <stdio.h>
#include <stdlib.h>
#include <math.h> int main(void)
{
int radian; //10倍弧度
double y; //y为y轴,值为-1到+1,步长为0.1;
int x; //用62列值代表x轴;62来源于2Pi*10约等于2*3.1*10; //用反余弦值求x更加方便
for(y=; y>=-; y-=0.1)
{
radian=acos(y)*; for(x=;x<=;x++)
{
if((x==radian)||(x==(-radian))) //反余弦函数值域[0,pi],左右对称
printf("*");
else
printf(" ");
}
printf("\n"); /*
书中的方法
for(x=1; x<radian; x++)
printf(" ");
printf("*");
for(; x<62-radian; x++)
printf(" ");
printf("*\n");
*/
} return ;
}

图1. 我的程序运行图片

图2. 书中程序运行图片
附加:这里尝试了下用数组写这个程序。
#include <stdio.h>
#include <stdlib.h>
#include <math.h> int main(void)
{
char cosMap[][];
int x, m;
double y; //y轴,值为-1到+1,步长为0.1; for(m=; m<; m++)
for(x=; x<; x++)
cosMap[m][x] = ' '; for(y=; y>=-; y-=0.1)
{
x=(int)(acos(y)*);
m=(int)(y*)+;
cosMap[-m][x] = '*';
cosMap[-m][-x] = '*';
} for(m=; m<; m++)
{
for(x=; x<; x++)
{
printf("%c", cosMap[m][x]);
}
putchar('\n');
} return ;
}
趣味C程序100.1 .1 绘制余弦曲线的更多相关文章
- 趣味C程序100.1 .2 绘制正弦曲线
说明:1.本问题来源于<C语言经典.趣味.实用程序设计编程百例精解>,所有程序为本人自己编写.与原程序不同之处作有标记. 2.本系列所有程序均使用codeblocks编译,操作系统为Win ...
- 趣味C程序100.9 绘制杨辉三角
说明:1.本问题来源于<C语言经典.趣味.实用程序设计编程百例精解>,所有程序为本人自己编写.与原程序不同之处作有标记. 2.本系列所有程序均使用codeblocks编译,操作系统为Win ...
- C语言经典程序100例
-------------------------------------------------------------------------------- [程序1] 题目:古典问题:有一对兔子 ...
- 经典c程序100例==91--100
[程序91] 题目:时间函数举例1 1.程序分析: 2.程序源代码: #include "stdio.h" #include "time.h" void mai ...
- java 经典程序 100 例
1,编写程序,判断给定的某个年份是否是闰年.闰年的判断规则如下:( 1)若某个年份能被 4 整除但不能被 100 整除,则是闰年.( 2)若某个年份能被 400 整除,则也是闰年. import ja ...
- Python重写C语言程序100例--Part1
''' [程序1] 题目:有1.2.3.4个数字,能组成多少个互不同样且无反复数字的三位数?都是多少? 1.程序分析:可填在百位.十位.个位的数字都是1.2.3.4.组成全部的排列后再去 掉不满足条件 ...
- 教你制作挂件头像 | 小程序七十二变之 canvas 绘制国旗头像
昨天朋友圈被「请给我一面国旗@微信官方」刷屏,虽然知道是假的,但是从另一个角度来看,弄清楚如何实现更有趣. 1.canvas 这就不得不提到小程序中的 API canvas,H5 中也是有 canva ...
- 经典c程序100例 1-10
==1--10 [程序1] 题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位.十位.个位的数字都是1.2.3.4.组成所有的排列后再去 掉不 ...
- 经典c程序100例==11--20
[程序11] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月 后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析: 兔子的规律为数列1 ...
随机推荐
- 利用图片延迟加载来优化页面性能(jQuery)
图片延迟加载也称懒加载,常用于页面很长,图片很多的页面,以电子商务网站居多,比如大家常上的京东,淘宝,页面以图居多,整个页面少说几百K,多则上兆,如果想一次性加载完成,不仅用户要哭了,服务器也得哭了. ...
- 一个寻找.jar 和.zip文件中class文件的工具
相信很多人跟我一样,苦于在各种包之间,不知道Class存在什么地方,为此,自己写了一个小工具,来寻找目录下的Class文件 支持 目录查询,支持带包路径查询 入口Entrance.java packa ...
- 服务器后端开发系列——《实战FastDFS分布式文件系统》[转]
1.FastDFS的配置.部署与API使用解读(1)Get Started with FastDFS 内容:讲解FastDFS的背景.基本原理,并讲述基本的配置.部署和测试的内容. 2.FastDFS ...
- 2440test 裸机測试 调试不进main 设置改动方法
2440test没进main函数并非跑飞.bin文件已经烧写到开发板里了的 而是没选择载入文件,导致不能调试程序文件 主要设置例如以下:
- VS2012执行Cocos2d-xTest案例载入失败解决方式
编译cocos2d-x,一直提示载入失败 通过搜索,解决方式例如以下: 第一步,通过命令提示行工具进入VS安装文件夹下的%VS2012home%Common7\IDE 第二部,运行devenv.exe ...
- android80 HttpClient框架提交数据 get方式
package com.itheima.httpclient; import java.io.IOException; import java.io.InputStream; import java. ...
- careercup-数组和字符串1.2
1.2 用C或C++实现void reverse(char *str)函数,即反转一个null结尾的字符串. C++实现代码: #include<iostream> #include< ...
- allocator例子
13.39 编写自己的StrVec,包括自己版本的reserve.capacity和resize. 13.40 为StrVec添加一个构造函数,它接受一个initializer_list<str ...
- Spring 注解回顾
[copy] 参考资料 赵蒙
- quartz.net 基于数据库的简单实现
前面简单学习了通过XML配置或者内存指定的方式实现调度任务.但此用法实战用途较小,企业上多需要分布式集群的方式.quart团队也考虑到了这点,于是有了我们今天要学习的.基于数据库实现分布式. Name ...