c语言实验12二维数组答案,浙师大c语言实验8二维数组答案

62e50291a81fc54b507f33cb80033297.gif 浙师大c语言实验8二维数组答案

(4页)

9e46a59e12938da07a7752e6f783f9d7.gif

本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!

9.9 积分

上机实验八二维数组与字符数组学号: 姓名: 一. 目的要求1. 掌握二维数组的棊本概念,如何定义二维数组,如何初始化二维数组。2. 掌握二维数组的基木操作:引用数组元素、行(列)求和,行(列)最人最小值,整个数组的输 入输出等。3. 掌握与二维数组有关的算法,如找最大最小值(或位置)、矩阵转置等。4 ?掌握字符串与字符数组的基本应用方法5.掌握字符串有关的算法,如字符转换、查询、统计和进制转换等二. 实验内容【实验题1】程序填空:输入一个4X4矩阵,求出主对角线上的元素Z和suml、副对角线上的元素之和 sum2,并输出结果。提示:每一行只有一个主对角线元素a[i][i](特征:i==j),也仅有一个副对角线元素a[i][n-i-l](特征:i+j二二n-1, 即 j=n-l-i)源程序:# includeint main(){ int ij,suml=0,sum2=0, a[4][4];printf(nInput a 4*4 matrix:\n'*);for( i=O; iv4; i++ )/瀚入矩阵元素For( j=0; jv4; j++)scanf(M%dH, &a[i][j]);for(i=0; i<4; i++ ) 〃计算 suml 和 sum2{ suml 4-=a[i][i] :sum2 += a[i][3-i] ;}printf(Hsuml=%d, sum2=%d\nH, suml,sum2); /瀚出结果}运行程序,并输入数据:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16运彳亍结果:sum 1 = 34 , sum2= 34【实验题2】程序填空:打印杨辉三介形前10行:11 11 2 113 3 114 6 4 11 5 10 10 5 1算法提示:分析一个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) 每行的主对角线元素也均为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]|j-l]+a[i-l][j];5) 输出该矩阵的下三角,即得出杨辉三角的前10行。源程序:#includeint main(){ intiJ,a[10][10];for(i=0; i<10; i++) 〃各行的第0列元素与主对角线元素赋1a[il⑹三 二 1;for( i=2; i<10; i++ ) 〃为第2~9行的夹在第()列与主对角线之间的元素赋值for(j=l;jint main(){ int i,d;char ch,b[8];printf(HInput 8-bit binary:\n”);〃输入二进制字符串 i=0;while(i<8){ /瀚入8位二进制字符ch= getcharQ;if( ch==MTII ch二二T) 〃输入©或T则存入数组b,忽略其他字符{ b[il二ch; i++; // b[i++]二ch ;}}d=0_; 〃二?十进制转换for( i=0; i<8; i++ ) d二 d*2+ 〃二进制:逢 2 进 1printf(Hdigit=%d\nn,d); /倫出十进制整数 d}程序运行结果:输入输出100101011490000 000()01010#0010162【实验题4】程序填空:输入一个以回车结束的字符串(冇效长度少于80),将该字符串中的字符重新排 列,使原先第()个字符出现在最后一位,原先第1个字符出现在倒数第2位,。。。,原先最示1个字符出现 在第0位,例如:字符串,abcdef,经重排后变成”fedcba雹算法分析:该问题类似于方阵转置,即把特定位置的数组元素进行交换。本题中的字符串存放在一维字 符型数组s屮,需要解决以下问题:1) 计算字符串s的有效长度len2) 将字符串s的前半部分(0?len/2-l)与字符串的后半部分对调,即交换对称元素,与s[i]对称的 元素是s[len-l-i],如下图所示:len=6源程序:#include #include int main()int i, len=O;char s[80],temp;prmtf(MInput a string(<80):\nH);gets( s) 二〃调用字符串输入函数gets(),输入字符串到sfor( i=0 ; s[i]!=,\0*; i++ ) 〃统计字符串有效长度lenlen++ ;for( i=0; iv len/2 ; i++){ 〃交换对称元素temp=s[i];s|i]= s[len-l-i];sHen-l-i] =temp;puts(s) ; //调用字符串输出函数puts,自带换行运行程序,输入Visual C++,结果是: 关 键 词: 师大 语言 实验 二维 数组 答案

524d6daf746efaa52c3c71bbfe7ba172.gif  天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值