- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机学院
数据结构课程设计
题 目:数组应用班 级:网络工程14104班姓 名:肖勇 学 号:0104同组人姓名:舒向东起 迄 日 期: 2014.12.28-2015.3.1课程设计地点: 湖南文理学院指导教师:邹汉斌评阅意见:成绩评定:
评阅人:日期:
完成日期:2014年12月
目录
1. 需求分析…………………………………………………………3
2. 概要设计(含流程图)…………………………………………3
3. 详细设计(含代码分析)………………………………………3
4. 调试分析和测试结果……………………………………………11
5. 总结………………………………………………………………12
6. 参考文献…………………………………………………………12
7. 致谢………………………………………………………………121. 需求分析该程序可以根据用户要求定义任意定义四维数组四个下标的最大值,用户可以根据需要输入一定数目的元素放入四维数组中,放入数组中元素的数目由用户自己决定,但不能大于数组的存储空间,用户如果想在数组中放入更多的元素,可以增大数组的存储空间。根据实验要求,从键盘输入的元素以行优先存入数组,以列优先显示出来。
2. 概要设计(含流程图)该程序包含两个函数,一个函数是把从键盘获得的元素以行优先顺序放入四维数组中,另一函数是把数组中的元素以列优先顺序输出到显示屏。Main函数中有四维数组的定义和赋值,还有以上两个函数的调用,实现了实验要求的功能。
以下是本查询的实验流程图3. 详细设计(含代码分析)
3.1、定义四维数组
动态数组是指在声明时没有确定数组大小的数组,即忽略方括号中的下标;当要用它时,可随时用ReDim语句(C语言中用malloc语句)重新指出数组的大小。使用动态数组的优点是可以根据用户需要,有效利用存储空间。
其原理以三维数组为例说明:先遵循从外层到里层,逐层申请的原则:
最外层指针是array,它是个三维指针,所指向的是array[],其为二维指针。
所以给array
申请内存应:
array=(int***)calloc(n1,sizeof(int**));
次层指针是array[],它是个二维指针,所指向的是array[][],其为一维指针。所以给array[]
申请内存应:
for(i=0;in1;i++)
{
array[i]=(int**)calloc(n2,sizeof(int*));
}
最内层指针是array[][],它是个一维指针,所指向的是array[][][],其是个整型常量。所
以给array[][]申请内存应:
for(i=0;in1;i++)
{
for(j=0;jn2;j++)
{
array[i][j]=(int*)calloc(n3,sizeof(int));
}
}
当然,你可以把它们整合在一起为:
int i,j,k;
int n1,n2,n3;
int ***array;
scanf(%d%d%d,n1,n2,n3);
array=(int***)calloc(n1,sizeof(int**));
for(i=0;in1;i++)
{
array[i]=(int**)calloc(n2,sizeof(int*));
for(j=0;jn2;j++)
{
array[i][j]=(int*)calloc(n3,sizeof(int));
for(k=0;kn3;k++)
{
array[i][j][k]=i+j+k+1;
}
}
}
最后不要忘了释放这些内存,这要遵循释放的时候从里层往外层,逐层释放的原则。
分析过程可参考上面的解答,这里不再赘述。只给出代码吧:
for(i=0;in1;i++)
{
for(j=0;jn2;j++)
{
free(array[i][j]);//释放第三维指针
}
}
for(i=0;in1;i++)
{
free(array[i]);//释放第二维指针
}
free(array);//释放第一维指针
四维创建过程同此。
3.2、数组赋值以四个for循环将数组中的所有空间都存入最大值32767。
3.3、将元素放入数组
结合我们熟悉的二维数组的赋值,四维数组的赋值同理,先从低层开始,逐个走向高层,但是要放入数组中的元素个数并不是恰好等于数组的空间大小,所以我们设计了一记数的变量,该变量初始化为0,当你想要往数组中存放n个数时,该变量每循环一次加一,当该变量增加到n时不在要求从键盘输入元素。
3.4、将元素从数组中输出
四个for循环中各个递增的变量在数组下标中的排序恰好相反,因为输入是以行优先顺序的,而输出是以列优先顺序的。而每个元素在一维数组中的序号是与数组的四个下标有联系的,可以根据这个联系运算出来。
您可能关注的文档
- 《数据库课程设计-奖学金评选系统 word格式》.doc
- 《数据库课程设计-图书馆图书借阅管理系统》.doc
- 《数据库课程设计-学生成绩管理系统》.doc
- 《数据库课程设计-学生管理信息系统》.doc
- 《数据库课程设计-学校图书馆管理系统的设计与实现》.doc
- 《数据库课程设计-学生考研信息管理系统的数据库设计》.doc
- 《数据库课程设计-学生宿舍管理系统设计》.doc
- 《数据库课程设计-学生公寓管理系统》.doc
- 《数据库课程设计-图书馆管理系统》.doc
- 《数据库课程设计-客房管理系统设计》.doc
- 岸基供电系统 第4部分:工频电源.pdf
- 人教版八下英语Unit 5 What were you doing when the rainstorm came_测试卷.docx
- 热带作物品种区域试验技术规程 木薯.pdf
- 草原防火阻隔带建设技术规程.pdf
- 渔用气胀救生筏技术要求和试验方法-.pdf
- 浙江省杭州市2024-2025学年八年级下学期期中考试英语试卷(含答案).docx
- 重庆市渝北区六校联盟2024-2025学年九年级下学期期中教学大练兵语文试卷.docx
- 食品安全-花椒籽油 (2).pdf
- 2025年海博思创分析报告:储能集成“小巨人”,国内外业务进展可期.pdf
- 地理标志产品 宽城板栗.pdf
文档评论(0)