首页 数字金字塔

数字金字塔

举报
开通vip

数字金字塔話黑範-nn(»*a軒*巴oe——寸se)一、课程设计概述课程设计问题描述编写程序,输入一个正整数n构造一个正整数的数字金字塔。例如对n=6,数字金字塔如下:123546数字金字塔构造规则如下:(1)1在最上方第0层;(2)如果x大于y并且x除以y的余数为0(即x>y&&x%y==0),x要放在y下方一层(即若y在第i层,x应在i+1层);(3)每个数应尽可能放在更下方,即如果可以放在第i层,就不能放在i-1层;(4)相同层上的数从左向右从小到大排列。每个数按照它在塔中的位置从上到下从左到右从1开始编号,例如...

数字金字塔
話黑範-nn(»*a軒*巴oe——寸se)一、课程 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 概述课程设计问题描述编写程序,输入一个正整数n构造一个正整数的数字金字塔。例如对n=6,数字金字塔如下:123546数字金字塔构造规则如下:(1)1在最上方第0层;(2)如果x大于y并且x除以y的余数为0(即x>y&&x%y==0),x要放在y下方一层(即若y在第i层,x应在i+1层);(3)每个数应尽可能放在更下方,即如果可以放在第i层,就不能放在i-1层;(4)相同层上的数从左向右从小到大排列。每个数按照它在塔中的位置从上到下从左到右从1开始编号,例如数5的序号为4。设计要求定义一个链表存放数据值及后续结点信息。编写一个函数建立链表。编写一个函数,由用户输入正整数n和3个不大于n的正整数,程序按要求构造的金字塔,并输出3个正整数在数字金字塔中的序号。图8.1中,用户输入6,3,4,5表示有6个数据组成金字塔,要求输出3,4和5在金字塔中的序号。4•编写一个函数实现数字金字塔的分层输出。设计目的数组的使用;结构体的基本知识;3.链表的应用;4.数据的输入和输出。开发环境操作系统:Windows7软件环境:MicrosoftVisualC++6.0二、总体设计(1)定义一个链表存放数据值及后续结点信息。编写一个函数建立链表。编写一个函数,由用户输入正整数n和3个不大于n的正整数,程序按要求构造的金字塔,并输出3个正整数在数字金字塔中的序号。图8.1中,用户输入6,3,4,5表示有6个数据组成金字塔,要求输出3,4和5在金字塔中的序号。图8.1程序运行结果系统功能需求分析9r5上ann靈h七书七。con4•编写一个函数实现数字金字塔的分层输出。三、详细设计(1)主要功能模块1源程序#include#includestructMyNode{intnum;〃表示数据值intlay;〃表示该数据在金字塔中的层数intsort;〃表示该数据在金字塔中的序号structMyNode*pNext;〃指向下一个结点};intmain(){printf("输入信息\n");intn,a,b,c;scanf("%d,%d,%d,%d",&n,&a,&b,&c);〃输入初始值structMyNode*pNode=(structMyNode*)malloc(n*sizeof(MyNode));//分配内存空间inti;for(i=0;ilay)lay=pNode[i].lay;//寻找最大层数}structMyNode**play=(structMyNode**)malloc(lay*sizeof(MyNode*));//把所有的元素做成链表for(intj=0;j<=lay;j++){structMyNode*pTemp=NULL;intk=0;for(inti=0;ipNext=&pNode[i];pTemp=pTemp->pNext;}}}structMyNode*ptemp=NULL;〃输出信息for(i=0;i<=lay;i++){ptemp=play[i];while(ptemp!=NULL){printf("%5d",ptemp->num);ptemp=ptemp->pNext;}printf("\n");}structMyNode*pHead=play[0];〃将层与层相接for(i=0;ipNext!=NULL){play[i]=play[i]->pNext;}play[i]->pNext=play[i+l];}intnum=1;〃给元素排名ptemp=pHead;wh订e(ptemp!=NULL){ptemp->sort=num++;ptemp=ptemp->pNext;}ptemp=pHead;〃输出排名intd,e,f;while(ptemp!=NULL){if(ptemp->num一a)//将序号赋给其他变量d=ptemp->sort;if(ptemp->num一b)e=ptemp->sort;if(ptemp->num一c)f=ptemp->sort;ptemp=ptemp->pNext;}printf("输出排名:%d,%d,%d\n",d,e,f);return0;}三、详细设计⑵1.确定每个数在哪一层2.确定有多少层3.寻找最大层数4.把所有的元素做成链表5.输出信息6.将层与层相接7.将所有元素进行排名8.输出所得排名主要功能模块2的算法设计四、调试分析过程(1)调试过程出现的问题调试的过程中,出现的问题比较多。编译的时候漏写了分号,或者将分号写错成逗号。有些变量没有先定义程序子函数,出现的逻辑性错误较多主函数调用时出现错误问题的解决方法根据错误提示一一进行探讨和查阅相关资料,然后进行更正,在不断的查询资料和更改后,整个程序出现的错误越来越少,最终运行成功四、调试分析过程⑵输入25,12,15,24测试数据25,12,15,241235711469IQ1481218201624输出排咯:21,16,25Pressanytocontinue1315172119222325测试结果五、 总结 初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf 设计用到的知识点数组的使用结构体的基本知识及其运用链表的应用数据的输入和输出收获与体会经过这几天的学习和思索,对以前学习的知识有了一个较为全面的认识。比如,数组的巧妙运用可以使程序更为简洁易懂,还有,运用函数模块可以使问题的复杂性更为简单明确。另外,这次学习让我对指针变量的运用有了较深的认识不足与努力方向设计程序前没有严谨的逻辑思路和明确的函数模块运用意识。程序设计中,常常出现简单的符号错误,以及函数的逻辑设计不够严谨,常常有漏洞。调试时,一旦有较多的错误提示,就很难静下来问题的解决方法。因此,对于以上的不足之处,以后,以后还得继续理解基本的编程原理,学习一些简便易懂的设计思路和方法八、参考文献谭浩强著C程序设计(第三版)刘光蓉著.C程序设计实验与 教程 人力资源管理pdf成真迷上我教程下载西门子数控教程protel99se入门教程fi6130z安装使用教程 游浩跃主编C语言程序设计与教程(美)PeterVanDerLinden著.徐波译。《C编程经典之作》
本文档为【数字金字塔】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
星空万里
暂无简介~
格式:doc
大小:78KB
软件:Word
页数:11
分类:
上传时间:2023-03-03
浏览量:1