一道C编程题

来源:百度知道 编辑:UC知道 时间:2024/05/04 16:35:02
有n个文件的长度记载在一个无符号64 位整数数组中unsigned __int64 file_length[n],把这n 个文件从逻辑上按序首尾拼接在一起形成一个逻辑上的大文件,然后以每块长度为unsigned block_length把这个逻辑上的大文件划分成大小相等的数据块(当然,最后一块有可能比block_length小),请定义和实现一个函数,把边界块的序号集合返回给函数的调用者(第一个数据块序号为0)。
注:边界块指的是跨多个文件的数据块。
能给出编程思路或程序均可,如果好的话可以追加分数!

http://blog.csdn.net/BillStone/archive/2009/09/11/4543912.aspx

file_length[n]中的每一个元素就是每个文件的长度,首先用file_length[0]除以block_length,得出一个double型的数,然后向右取整就是第一个边界块的序号。
然后用file_length[0] + file_length[1] 除以block_length,向右取整就是第二个。
同理,file_length[0] + file_length[1] + file_length[2]……
按我的理解大概就是这样。