摘要: 解题思路:刚开始读不懂题意,不知道到底让求什么,看着测试数据也很奇怪。根据题意,目的要求是“多退少补”,那么可以把学生分成两组,一组是垫付的费用大于平均费用的,一组是小于等于平均费用的,垫付多的学生应该退还钱款,垫付少的应该收取费用。而所求的是需要最少的那部分。即让求每个学生平摊支出所需的最小总“交易”金额。首先计算“平均费用”,由于要求支出差距在1分钱以内,故可以考虑在计算时取小数点后两位,对于第三位以后的数采用四舍五入的方法。可以截取浮点数中的部分小数位:sprintf( tmp, "%.2lf", ave); sscanf( tmp, "%lf", 阅读全文
posted @ 2012-03-14 09:22 笑巧 阅读(297) 评论(0) 推荐(0) 编辑
摘要: 解题思路:题意很明确,就是依据日程安排找出最长的可能打盹的时间。其实就是把所有空闲的时间排序(先要对日程安排时间从小到大排序,然后计算出可能的打盹时间),然后找到最长的即为所求。需要注意的是:时间从 10:00 开始,到 18:00 结束,在计算过程中一定要把边界考虑上。我定义了两个结构体,其中 struct Time 记录的是日程安排的开始时间、结束时间;而 struct Break 记录的是可以打盹的开始时间和结束时间,还有可以打盹的时间。按照时间的格式,所以选择用字符数组来保存时间,而日程安排事项自然也用字符数组,注意包含空格,故选用gets() 输入。在计算打盹时间时是按分钟计算的。由 阅读全文
posted @ 2012-03-14 08:55 笑巧 阅读(210) 评论(0) 推荐(0) 编辑