说明: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 绘制余弦曲线的更多相关文章

  1. 趣味C程序100.1 .2 绘制正弦曲线

    说明:1.本问题来源于<C语言经典.趣味.实用程序设计编程百例精解>,所有程序为本人自己编写.与原程序不同之处作有标记. 2.本系列所有程序均使用codeblocks编译,操作系统为Win ...

  2. 趣味C程序100.9 绘制杨辉三角

    说明:1.本问题来源于<C语言经典.趣味.实用程序设计编程百例精解>,所有程序为本人自己编写.与原程序不同之处作有标记. 2.本系列所有程序均使用codeblocks编译,操作系统为Win ...

  3. C语言经典程序100例

    -------------------------------------------------------------------------------- [程序1] 题目:古典问题:有一对兔子 ...

  4. 经典c程序100例==91--100

    [程序91] 题目:时间函数举例1 1.程序分析: 2.程序源代码: #include "stdio.h" #include "time.h" void mai ...

  5. java 经典程序 100 例

    1,编写程序,判断给定的某个年份是否是闰年.闰年的判断规则如下:( 1)若某个年份能被 4 整除但不能被 100 整除,则是闰年.( 2)若某个年份能被 400 整除,则也是闰年. import ja ...

  6. Python重写C语言程序100例--Part1

    ''' [程序1] 题目:有1.2.3.4个数字,能组成多少个互不同样且无反复数字的三位数?都是多少? 1.程序分析:可填在百位.十位.个位的数字都是1.2.3.4.组成全部的排列后再去 掉不满足条件 ...

  7. 教你制作挂件头像 | 小程序七十二变之 canvas 绘制国旗头像

    昨天朋友圈被「请给我一面国旗@微信官方」刷屏,虽然知道是假的,但是从另一个角度来看,弄清楚如何实现更有趣. 1.canvas 这就不得不提到小程序中的 API canvas,H5 中也是有 canva ...

  8. 经典c程序100例 1-10

    ==1--10 [程序1] 题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位.十位.个位的数字都是1.2.3.4.组成所有的排列后再去 掉不 ...

  9. 经典c程序100例==11--20

    [程序11] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月 后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析: 兔子的规律为数列1 ...

随机推荐

  1. 关于Ajax&初见Ajax

    Ajax实现的效果 究竟Ajax能实现什么功能呢?今天下午学习了一下Ajax,现在跟大家分享一下我的学习心得.Ajax是什么?工作机制又是什么?可能不大准确,只是我个人看了视频学习后的一点点看法. A ...

  2. Win8控制面板快捷键

    Win8系统相比我们已经熟悉的Win7与XP系统有着一些特殊的变化,导致很多初次使用Win8系统的朋友感觉有点吃力,随着Win8系统即将于几天后正式发布,下面本文与大家分享大家比较关心的Win8控制面 ...

  3. CoreJava_线程并发(堵塞队列):在某个目录下搜索含有某keyword的文件

    Java多线程编程是很考验一个程序猿水平的. 传统的WEB程序中.由于框架提供了太多的健壮性.并发性.可靠性的支持,所以我们都是将全部的注意力放到了业务实现上.我们不过依照业务逻辑的要求.不停的积累自 ...

  4. LED灯开关电路

    “灯控项目”中LED灯开关控制电路,LED供电电压12V,工作电流200mA. 电路图

  5. 九度OJ 题目1384:二维数组中的查找

    /********************************* * 日期:2013-10-11 * 作者:SJF0115 * 题号: 九度OJ 题目1384:二维数组中的查找 * 来源:http ...

  6. DNS的查找机制、中文扩展,及其对手机扫描商标名称的支持

    DNS的查找机制.中文扩展.及其对手机扫描商标名称的支持 DNS的查找机制 当DNS查找主机时,它首先在本域里查找,假设找不到则交给更上一级的域查找,直至顶级的域. 因此,假设计算机在北大域名(pku ...

  7. java final keyword

    依据上下文环境,java的keywordfinal也存在着细微的差别,但通常指的是“这是无法改变的.”不想改变的理由由两种:一种是效率,还有一种是设计.因为两个原因相差非常远,所以关键子final可能 ...

  8. 传输层:TCP UDP SCTP

    总图 虽然协议族被称为“TCP/IP”,但除了TCP和IP这两个主要协议外,还有许多其他成员.图2-1展示了这些协议的概况. 图2-1中同时展示了IPV4和IPV6.从右向左看该图,最右边的5个网络应 ...

  9. 刷leetcode

    目前已经刷到了56题,才到1/3,后面越来越难,不知道能不能在面微软之前刷完.

  10. Windows 7系统下局域网文件共享设置方法

    今天给家里增添了一台组装机,小试了一下win7局域网文件共享功能,很爽的说. 记录一下实现方法: 1.关闭防火墙 2.启用共享. 控制面板 – 网络和共享中心 – 更改高级共享设置,将图中的几个选项选 ...