资源描述:
《浙师大c语言实验8二维数组答案》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、上机实验八二维数组与字符数组学号:姓名:一.目的要求1.掌握二维数组的棊本概念,如何定义二维数组,如何初始化二维数组。2.掌握二维数组的基木操作:引用数组元素、行(列)求和,行(列)最人最小值,整个数组的输入输出等。3.掌握与二维数组有关的算法,如找最大最小值(或位置)、矩阵转置等。4•掌握字符串与字符数组的基本应用方法5.掌握字符串有关的算法,如字符转换、查询、统计和进制转换等二.实验内容【实验题1】程序填空:输入一个4X4矩阵,求出主对角线上的元素Z和suml、副对角线上的元素之和sum2,并输出结果。提示:每一行只有一个主对角线元素a[i]
2、[i](特征:i==j),也仅有一个副对角线元素a[i][n-i-l](特征:i+j二二n-1,即j=n-l-i)源程序:#includeintmain(){intij,suml=0,sum2=0,a[4][4];printf(nInputa4*4matrix:'*);for(i=O;iv4;i++)/瀚入矩阵元素For(j=0;jv4;j++)scanf(M%dH,&a[i][j]);for(i=0;i<4;i++)〃计算suml和sum2{suml4-=a[i][i]:sum2+=a[i][3-i];}printf(Hs
3、uml=%d,sum2=%dH,suml,sum2);/瀚出结果}运行程序,并输入数据:12345678910111213141516运彳亍结果:sum1=34,sum2=34【实验题2】程序填空:打印杨辉三介形前10行:11112113311464115101051算法提示:分析一个10行的杨辉三角,需要一个10X10的二维矩阵a,贝H1)杨辉三角为下三角矩阵,只需要求出第i行(i=0,1,2,9)前i+1个元素,即a[i][j]!=O(j=O,l,…i).2)每行的第0列元素均为1,即a[i][O]=l;(i=0,1,2,…,9)3)每行
4、的主对角线元素也均为1,即a[i][i]=l;(i=0,1,2,9)4)从第2行开始,每行夹在第()列元素与主对角线元素Z间的元素n[i][j](i=2,3,...,9,j=l,..,i・l)等于其左上方元素a[i-l][j-l]与正上方元素a[i・l][j]之和,即a[i][j]=a[i-l]
5、j-l]+a[i-l][j];5)输出该矩阵的下三角,即得出杨辉三角的前10行。源程序:#includeintmain(){intiJ,a[10][10];for(i=0;i<10;i++)〃各行的第0列元素与主对角线元素赋1a[il⑹
6、三二1;for(i=2;i<10;i++)〃为第2~9行的夹在第()列与主对角线之间的元素赋值for(j=l;j7、入二进制字符串10010001,输出十进制整数竺算法提示:1、由于二进制字符串b的长度固定为8,因此定义字符数组charb[8]即可,每个元素对应一个二进制位;2、循环1:输入二进制字符,输入的每一个字符先暂存在字符变量ch中,检査ch是否是©或T,,是则存入数组b,并令数组下标i增1,不是则跳过该字符。3、循环2:二■十进制转换:从前往后,带权累加数组b各元素对应的数值b[i]-t0,:d=dX2+b[i]-O源程序:#includeintmain(){inti,d;charch,b[8];printf(HInput8-bit
8、binary:”);〃输入二进制字符串i=0;while(i<8){/瀚入8位二进制字符ch=getcharQ;if(ch==MTIIch二二T)〃输入©或T则存入数组b,忽略其他字符{b[il二ch;i++;//b[i++]二ch;}}d=0_;〃二•十进制转换for(i=0;i<8;i++)d二d*2+〃二进制:逢2进1printf(Hdigit=%dn,d);/倫出十进制整数d}程序运行结果:输入输出100101011490000000()01010#0010162【实验题4】程序填空:输入一个以回车结束的字符串(冇效长度少于80)
9、,将该字符串中的字符重新排列,使原先第()个字符出现在最后一位,原先第1个字符出现在倒数第2位,。。。,原先最示1个字符出现在第0位,例