- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言强化培训
C语言强化培训
一、关于浮点数的比较(Floating-point Number Comparison)
在对浮点数进行相等(==)和不相等(!=)比较的操作时通常是有问题的。浮点数的相等比较,一般总是使用两者相减的值时候落在0的邻域中来判断的。看一个例子:
#include stdio.h
main()
{
float f1=7.123456789;
float f2=7.123456785;
float g;
double d;
if (f1 == f2)
printf(f1等于f2\n);
else
printf(f1和f2不相等);
g = 1.0/3.0;
d = 1.0/3.0;
if (g == d)
printf(g等于d\n);
else
printf(g和d不相等\n);
}
该程序的输出结果是什么呢?
进一步,我们再以下一个例子:
#include stdio.h
main()
{
float x = 1234.567;
printf(“x = %f\n”, x);
}
程序的输出结果是你所想象的吗?
x = 1234.567017
【例题1】有一个早晨?点到晚上11点营业的连锁店,叫7-11店。一次,一位顾客在该店选了4样东西,付款时,营业员计算后说:“总共是7.11元。”顾客开玩笑说:“哦?难道因为你们是7-11店,所以我就要付7.11元吗?”营业员没有听出是在开玩笑,便回答说:“当然不是,我是把4样东西的价格相乘才得出结果的!”顾客非常吃惊,说:“你怎么把它们相乘呢?应该把它们相加才对!”营业员听后,忙说:“噢,对不起,我今天头非常疼,所以按错计算器的键了。”并赶紧把4样东西的价格相加重新计算了一遍,但结果令两个人都十分惊讶,总和还是7.11元。请设计一个算法计算这4样东西的价格各是多少?
#include stdio.h
void main()
{
int a, b, c, d;
for (a=1; a=711; a++)
for (b=1; b=711-a; b++)
for (c=1; c=711-a-b; c++)
{
d = 711-a-b-c;
if ( a * b * c * d == 711000000L)
printf(%4.2f %4.2f %4.2f %4.2f\n,
a/100.0, b/100.0, c/100.0, d/100.0);
}
}
答案: 1.20 1.25 1.50 3.16
需要注意的是,上面的程序只能在VC下运行并得到准确的结果,在TC下面运行不会有结果的,因为VC下面的程序是32位的程序,而TC是16位的程序。所以在TC下面还得按如下方式修改程序:
#include stdio.h
void main()
{
int a, b, c, d;
long h;
clrscr();
for (a=1; a=711; a++)
for (b=1; b=711-a; b++)
for (c=1; c=711-a-b; c++)
{
d = 711-a-b-c;
h = (long)a*(long)b*(long)c*(long)d;
if (h==711000000L)
printf(%4.2f %4.2f %4.2f %4.2f\n,
a/100.0, b/100.0, c/100.0, d/100.0);
}
}
二、数学模型及其程序的优化
数学模型,是整个程序开发各个环节的根本前提,它的得当与否对程序设计优化具有一石千斤的全局性影响。因此,应当首先致力于使所讨论的问题的数学模型尽可能优化,而绝不能本末倒置,只着眼于其他环节的优化。
【例题2】试求下列级数任意指定的前n项之和:
13,-23,33,-43,.......,(-1)n-1n3,........
【解
文档评论(0)