广工数据结构上机答案:排序与斐波那契序列算法解析

需积分: 19 3 下载量 157 浏览量 更新于2024-07-23 收藏 215KB DOC 举报
"这是一份关于广东工业大学数据结构课程上机练习的答案,包含了多个习题的解题代码,如非递增排序和斐波那契数列计算,以及一个处理体育比赛成绩的算法。" 在数据结构的学习中,掌握各种算法是至关重要的。这份资料提供了几个典型的算法实例,可以帮助学生巩固和理解数据结构的基本概念。 首先,1.16题的算法目的是将三个整数X、Y、Z按照非递减顺序排列。这个算法采用了简单的交换方法,通过比较和交换变量的值来完成排序。在函数`Descend`中,首先比较X和Y,如果X小于等于Y则交换它们;接着,将Y和Z进行比较,如果Y小于等于Z再进行交换;最后,再次比较X和Y,确保它们的顺序正确。这样,函数最后会输出从大到小排列的X、Y、Z。 1.17题涉及的是斐波那契数列的扩展——k阶斐波那契序列。斐波那契数列是一个数列,其中每个数字是前两个数字的和。在这个题目中,`Fibonacci`函数接收k和m作为参数,返回k阶斐波那契数列的第m项。函数首先检查输入参数的合理性,如果k小于2或m小于0,则返回错误。然后,根据m的值计算斐波那契数,使用一个循环存储中间结果,避免了重复计算,提高了效率。 1.18题的场景是处理一场体育赛事的成绩,需要统计各个院校的男女总分和团体总分。这个问题可以通过遍历成绩表,根据校名和性别累加得分来解决。函数`Scores`可能会使用一个结构体数组,每个结构体包含项目名称、性别、校名、成绩和得分等字段。遍历数组时,对每个院校的男女子得分分别进行累计,并计算团体总分。 这些上机练习题涵盖了排序、递推序列和数据处理等多个方面,都是数据结构学习中的基础且重要的知识点。通过实践这些代码,学生能够加深对数据结构的理解,提高编程能力。