欢迎来到天天文库
浏览记录
ID:32592431
大小:73.92 KB
页数:14页
时间:2019-02-13
《12程磊第四次报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、、卞国乂抄丸字(北京)CHINAUNIVERSITYOFPETROLEUM高级语言课程设计4.数组院系名称:地球物理与信息工程学院专业名称:计算机科学与技术学生学号:20120"328学生姓名:程磊学生序号:12完成日期2013年7月4日高级语言课程设计实习报告报告完成日期:2013年月日学号2012011328姓名程磊成绩班级计算机12-1E-MAIL及电话1026781822(5)qQ.com15652950302实习题目第四次作业:数组1.ti_06:将长度为的矩阵分别左、右旋转90度后输出。比如原数组为:123456789012
2、3456则左转90度后为:48263715260415932.ti_07:在n*n的矩阵中填入1,2,…n*n,n由文件读入,比如当n为4时矩阵为如下形式,输出结果也写入文件。112111021316931415845673.ti_08:在n*n的矩阵中填入0,1,2,。。。n*n-l,n由文件读入,比如当n为4时矩阵为如下形式,输出结果也写入文件。1213141511678105239410评阅意见:评阅人:2013年月曰一、实习目的:通过对二维数组的旋转操作,对二维数组的回型填数,角型填数,熟悉二维数组的行列关系,逻辑总结,和用循环
3、控制来操作二维数组;将二维数组打印到文件中,熟悉和掌握文件的原理和用法。1・、代码及注释。ti_06:#include#include#include#defineD50usingnamespacestd;voiddisplayarray(inta[][D],intn)〃用来输出数组{intij;for(i=0;i4、,intn)〃将大小为n的二维数组a[][]向左转{inti,k;for(i=0;ivn/2;i++)〃数组转动实际是数组元素之间的交换,总共需要交换n/2轮foF(k=0;kvn亠i・i;k++)〃在i次时,k从0变换到n-1-i-iintt;〃将a[i][k+i],a[k+i][n-l-i],a[n-l-l-k][i]三者的的数进行交换t=a[i][k+i];a[i][k+i]=a[k+i][n-l-i];a[k+i][n-l-i]=a[n-l-i][n-l-i-k];a[n-l-i][n-l-i-k]=a[n-l-i-k][i];5、a[n-l-i-k][i]=t;}}voidInvertArrayRight(inta[][D],intn)〃将大小为n的二维数组a[][]向右转{inti,j,m,temp;for(i=0;ivn/2;i++)〃总共需要交换n/2轮m=n・i*2;if(m==l)break;//如果数组只有一个元素,或循环到数组的最后一组,则退出循环for(j=i;jvm+i・l;j++)//从i=j开始进行循环,直到m+i・ltemp=a[i]6、j];//实现同一对角线的三个数的交换a[i][j]=a[n-j-l][i];a[n-j-l][i]=a7、[n-i-l][n-j-l];a[n-i-l][n-j-l]=a[j][n-M];a[j][n-i-l]=temp;}intmain(){inta[D][D];intn,ij;intchoice;cout«nInputnf;//输入数组的的大小cin»n;cout«Hassignthearraya:”;〃为数组的每个元素赋值for(i=0;i8、turnright)";〃选择左转或右转cin»choice;switch(choice){case1:cout«HInvertthearraytotheleft:H«endl;InvertArrayLeft(a,n);〃左转displayarray(a,n)“彌出左转后结果break;case2:cout«HInvertthearraytotheleft:H«endl;InvertAirayRight(a,n);〃右转displayarray(a^n);break;default:cout«Merrors!n;}return09、;}ti_07:#include#include#include#defineN50usingnamespacestd;voidarrayproduc
4、,intn)〃将大小为n的二维数组a[][]向左转{inti,k;for(i=0;ivn/2;i++)〃数组转动实际是数组元素之间的交换,总共需要交换n/2轮foF(k=0;kvn亠i・i;k++)〃在i次时,k从0变换到n-1-i-iintt;〃将a[i][k+i],a[k+i][n-l-i],a[n-l-l-k][i]三者的的数进行交换t=a[i][k+i];a[i][k+i]=a[k+i][n-l-i];a[k+i][n-l-i]=a[n-l-i][n-l-i-k];a[n-l-i][n-l-i-k]=a[n-l-i-k][i];
5、a[n-l-i-k][i]=t;}}voidInvertArrayRight(inta[][D],intn)〃将大小为n的二维数组a[][]向右转{inti,j,m,temp;for(i=0;ivn/2;i++)〃总共需要交换n/2轮m=n・i*2;if(m==l)break;//如果数组只有一个元素,或循环到数组的最后一组,则退出循环for(j=i;jvm+i・l;j++)//从i=j开始进行循环,直到m+i・ltemp=a[i]
6、j];//实现同一对角线的三个数的交换a[i][j]=a[n-j-l][i];a[n-j-l][i]=a
7、[n-i-l][n-j-l];a[n-i-l][n-j-l]=a[j][n-M];a[j][n-i-l]=temp;}intmain(){inta[D][D];intn,ij;intchoice;cout«nInputnf;//输入数组的的大小cin»n;cout«Hassignthearraya:”;〃为数组的每个元素赋值for(i=0;i8、turnright)";〃选择左转或右转cin»choice;switch(choice){case1:cout«HInvertthearraytotheleft:H«endl;InvertArrayLeft(a,n);〃左转displayarray(a,n)“彌出左转后结果break;case2:cout«HInvertthearraytotheleft:H«endl;InvertAirayRight(a,n);〃右转displayarray(a^n);break;default:cout«Merrors!n;}return09、;}ti_07:#include#include#include#defineN50usingnamespacestd;voidarrayproduc
8、turnright)";〃选择左转或右转cin»choice;switch(choice){case1:cout«HInvertthearraytotheleft:H«endl;InvertArrayLeft(a,n);〃左转displayarray(a,n)“彌出左转后结果break;case2:cout«HInvertthearraytotheleft:H«endl;InvertAirayRight(a,n);〃右转displayarray(a^n);break;default:cout«Merrors!n;}return0
9、;}ti_07:#include#include#include#defineN50usingnamespacestd;voidarrayproduc
此文档下载收益归作者所有