计算系统和程序设计基础课程设计.docx

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE \* MERGEFORMAT1 计算机程序设计基础 课程设计 目录 TOC \o 1-3 \u 一:捕鱼问题 PAGEREF _Toc414006021 \h 3 1、【设计题目】 PAGEREF _Toc414006022 \h 3 2、【设计内容及思路】 PAGEREF _Toc414006023 \h 3 3、【算法】 PAGEREF _Toc414006024 \h 3 4、【程序清单与运行结果】 PAGEREF _Toc414006025 \h 4 二:荷兰国旗问题 PAGEREF _Toc414006026 \h 5 1、【设计题目】 PAGEREF _Toc414006027 \h 5 2、【设计内容及思路】 PAGEREF _Toc414006028 \h 5 3、【算法】 PAGEREF _Toc414006029 \h 5 4、【程序清单与运行结果】 PAGEREF _Toc414006030 \h 6 三:发纸牌 PAGEREF _Toc414006031 \h 8 1、【设计题目】 PAGEREF _Toc414006032 \h 8 2、【设计内容及思路】 PAGEREF _Toc414006033 \h 8 3、【算法】 PAGEREF _Toc414006034 \h 8 4、【程序清单与运行结果】 PAGEREF _Toc414006035 \h 8 四:数字旋转方阵 PAGEREF _Toc414006036 \h 10 1、【设计题目】 PAGEREF _Toc414006037 \h 10 2、【设计内容及思路】 PAGEREF _Toc414006038 \h 10 3、【算法】 PAGEREF _Toc414006039 \h 10 4、【程序清单与运行结果】 PAGEREF _Toc414006040 \h 11 五:【总结及设计体会】 PAGEREF _Toc414006041 \h 12 一:捕鱼问题 1、【设计题目】 A、B、C、D、E五个人合伙夜间捕鱼,上岸时都疲惫不堪,各自在湖边的树丛中找地方睡觉了。清晨,A第一个醒来,将鱼分成5份,把多余的一条扔回湖中,拿自己的一份回家了;B第二个醒来,也将鱼分成5份,扔掉多余的一条鱼,拿自己的一份回家了;接着,C、D、E依次醒来,也都按同样的办法分鱼。问:5个人至少共捕到多少条鱼?每个人醒来后看到多少条鱼? 2、【设计内容及思路】 根据题意,总计将所有的鱼进行了五次平均分配,每次分配时的策略是相同的,即扔掉一条鱼后剩下的鱼正好分成五份,然后拿走自己的一份,余下其它的四份。假定鱼的总数为X,则X可以按照题目的要求进行五次分配:X-1后可被5整除,余下的鱼为4*(X-1)、5。 3、【算法】 采用正推法,fish[0]从1开始每次增加5,然后依次考查fish【n】是否满足被5证书后余1,算法描述如下: Step1:初始化fish【0】=1; Step2:重复下述操作,直到fish【n】满足被5除后余1; Step2.1:fish【0】=fish【0】+5; Step2.2:循环变量i从1到4,重复执行下述操作; Step2.2.1:fish【i】=(fish【i-1】-1)/5*4; Step2.2.2:如果fish【i】不满足被5除后余1,则转step2.1; Step2.2.3:i++ Step3:依次输出数组fish【n】 4、【程序清单与运行结果】 #include stdio.h int main() { char man[5] = {A,B,C,D,E}; int fish[5], i; fish[0] = 1; do { fish[0] = fish[0] + 5; for (i = 1; i 5; i++) { fish[i] = (fish[i - 1] - 1) / 5 * 4; if (fish[i] % 5 != 1) break; } } while (i 5); for (i = 0; i 5; i++) printf(%c看到的鱼数是%d\n, man[i], fish[i]); return 0; } 显示结果: A看到的鱼是3121 B看到的鱼是2493 C看到的鱼是1996 D看到的鱼是1596 E看到的鱼是1276 二:荷兰国旗问题 1、【设计题目】 要求重新排列一个由Red、White和Blue(这是荷兰国旗的颜色)构成的数组,使得所有的Red都排在最前面,White排在其次,Blue排在最后。 2、【设计内容及思路】 荷兰国旗问题其实就是一个排序

文档评论(0)

189****6140 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档