一、求3个整数中最小值
题目:输入三个整数,表示梨的重量,输出最小的数。
方法1:经过三次两两比较,得出最小值。
a<=b && a<=c min=a
b<=c && b<=a min=b
c<=b && c<=a min=c
流程图:
方法2:先找出a和b中较小的那个数,把较小的数赋值给min,然后再让min和c比较,找出最小值。
流程图:
方法3:先假设第一个数a为最小值,把它赋值给min;然后和第二个数b比较,若b比min小,就把第二数b赋值给min;再和第三个数c比较,若第三个数c比min小,就把三数c赋值给min,有点儿类似打擂台。
流程图:
注:通俗地讲,程序算法就是为解决某一特定问题而采取的具体有限的操作方法步骤。
二、3个数排序
问题:试编一程序,输入三个数,表示三匹马跑100米的秒数,时间越小速度越快,请将秒数按由小到大的顺序输出。
方法:
流程图:
三、随机函数rand()
随机数rand()函数返回的值是一个大于等于0且小于等于RAND_MAX的随机整数,RAND_MAX是一个符号常量(通俗讲,符号量就是“替代”。即用一个标识符来代常量)它的值与操作系统、编译器等有关。若在Windows操作系统下的DevC+中其值为32767。若在Linux操作系统下的g++中其值为2147483647。在使用随机函数rand()前,需要包含cstdlib头文件,即#include
*编程实验随机函数rand()的使用。
要产生真随机数,方法是:
(1)使用srand()来设置随机种子,srand(time(0))设置当前的系统时间值为随机种子;需要包含头文件ctime,即#include
(2)要产生一个[a,b]的随机整数,就要使用通用公式:
rand()%(b-a+1)+a
rand()%5+1 //可以产生一个[1,5]的随机整数。
例题:试编一个程序,计算机随机产生一个整数(1至5),自己输入一个整数,若两数相同,则输出“恭喜你,中奖了!奖金10元”,否则输出“没中奖,请付费2元”;同时公布中奖号码。
流程图:
英汉小词典:
rand random(随机)的缩写
srand 设置随机种子
四、if语句的应用
问题:周末,格莱尔和爸爸打车到游乐场玩。打车计价方案为:2千米内起步是6元;超过2千米之后按1.8元/千米计价;超过10千米之后在1.8元/千米的基础上加价50%,如图示。此外,停车等候则按时间计费每3分钟加收1元(注:不满3分钟不计费)。试编一程序,计算格莱尔需要付的打车费是多少?
流程图:
英汉小词典:
路程:path length
费用:cost
五、bug与debug
问题————体质指数(BMI)由19世纪中期比利时的通才凯特勒最先提出,是目前国际上常用的衡量人体胖瘦程度以及是否健康的一个标准。它的计算方法如下:
体质指数(BMI)=体重(kg)/身高(m)的平方
以上标准只适合于成年人,试编一程序,根据体重、身高,判断其胖瘦程度。
流程图如下:
测试数据:①1.71 62
②-1.71 62
③20 165
本程序运行时输入的数据存在问题,如运行结果②输入负数,运行结果③输入不太现实的数据。任何一个程序,都是有数据范围要求的,超出了数据范围,程序可能就不对了。在参加全国青少年信息学奥林匹克联赛(NOIP)等竞赛上机编程时,会发现每道题目都会给出数据范围,这就要求我们在设计算法时,要根据数据范围做更加全面细致的考虑,否则程序会出现bug。说到bug,这背后有一个有趣的故事:有一天,美国海军准将、计算机女科学家、世界最早的一批程序设计师葛丽丝·霍波(Grace Hopper),在调试设备时出现故障,拆开继电器后,发现有一只飞蛾被夹扁在触点中间,从而“卡”住了机器的运行。于是,霍波诙谐地把程序故障统称为“臭虫(bug)”,把排除程序故障叫debug,而这奇怪的“称呼”,竟成为后来计算机领域的专业术语。