计算系统与程序设计基础课程设计.docxVIP

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

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机程序设计基础课程设计目录一:捕鱼问题31、【设计题目】32、【设计内容及思路】33、【算法】34、【程序清单与运行结果】4二:荷兰国旗问题51、【设计题目】52、【设计内容及思路】53、【算法】54、【程序清单与运行结果】6三:发纸牌81、【设计题目】82、【设计内容及思路】83、【算法】84、【程序清单与运行结果】8四:数字旋转方阵101、【设计题目】102、【设计内容及思路】103、【算法】104、【程序清单与运行结果】11五:【总结及设计体会】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.hint 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看到的鱼是3121B看到的鱼是2493C看到的鱼是1996D看到的鱼是1596E看到的鱼是1276二:荷兰国旗问题1、【设计题目】要求重新排列一个由Red、White和Blue(这是荷兰国旗的颜色)构成的数组,使得所有的Red都排在最前面,White排在其次,Blue排在最后。2、【设计内容及思路】荷兰国旗问题其实就是一个排序问题,可以将红,白,蓝3种颜色分别用数字0,1,2表示,用一个数组来存储他们。将相同颜色线条归为一类就相等于将数组中的数值按大小进行排序,只不过数组里存储的只有3种数值而已。解题的基本策略是遍历两个颜色区域,如果颜色条不属于所在区域,则交换一个属于该区域的颜色条。这样,每一次都是有必要的交换,从而实现最少交换次数。3、【算法】输入:数组Color a[ n],有Red、White、和Blue三种元素功能:荷兰国旗输出:有序数组Color a[ n]4、【程序清单与运行结果】#include stdio.h#include stdlib.h#include time.h#define NUM 10enum Color {Red, White, Blue};void A(enum Color a[ ], int n);void B(enum Color a[ ], int n);void C(enum Color a[ ], int n); int main(){enum Color a[50];A (a, NUM);printf(初始序列为:);C(a, NUM);B(a, NUM);printf(荷兰国旗是:);C(a, NUM);return 0;}void A(enum Color a[ ], int n){int temp, i;srand(time(NULL));for (i = 0; i n; i++){temp = rand( )%3;a[i] = (enum Color)temp; }}void B(enum Color a[ ], int n) {int i = 0, k = n - 1, j

文档评论(0)

cYHUuuVeqS + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档