版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、真诚为您提供优质参考资料,若有不当之处,请指正。实验四 参考答案(参考答案)(1) 设计程序sy5-1.c,从键盘上输入一个3行3列矩阵各个元素的值,输出其主对角线元素和反向对角线元素之和。算法分析: 对角线上的元素,1维和2维下标相同,反对角线元素,如果行下标为i,列下标就为2-i;参考答案:#includeint main()int a33=1,2,3,4,5,6,7,8,9;int i,j,sum=0;for(i=0;i3;i+)sum=sum+aii+ai2-i; /aii当前行的主对角线元素 /ai2-i当前行的反对角线元素printf(矩阵的正、反对角线元素之和为:%dn,sum)
2、;return 0;运行结果:(2) 设计程序sy5-2.c,找出一个34的矩阵中的最小值及其位置。算法分析: 首先把二维数组中的第一个数即a00看成最小值,然后逐行逐列的去遍历每个元素,逐一判断每一个元素是否比最小值还好小,如果是,就改写最小值,并记录他的下标。参考答案:#include#includeint main()int a34=10,21,41,5,12,15,46,35,40,21,26,30;int i,j,row,colum,min;printf(数组a:n);for(i=0;i3;i+)for(j=0;j4;j+) printf(%5d,aij);printf(n);min
3、=a00;row=0;colum=0; /首先把第一个数a00看成最小数for(i=0;i3;i+) /双重循环逐一遍历每个元素aijfor(j=0;jaij) /如果当前值aij比最小值还要小min=aij;row=i;colum=j; /用aij改写最小值,并记下他们的下标printf(矩阵中最小元素是:%d,行下标是:%d,列下标是%dn,min,row,colum);return 0;运行结果:(3) 设计程序sy5-3.c,定义一个33的二维数组,通过随机函数自动赋值。然后输入一个整数n,使数组左下三角(含对角线元素)元素中的值乘以n 。例如:若n的值为3,a 数组中的值为 | 1
4、9 7 |则程序运行后a数组中的值应为 | 3 9 7 | | 2 3 8 | | 6 9 8 | 4 5 6 | | 12 15 18 | 算法分析: 主要理解到对角线即以下元素包含哪些元素,即他们的下标变化。对每一行i来说,对角线以下的元素,他们的列下标是0,1,2,-,i;所以用外循环i遍历行,内循环j(从0到i),逐一遍历每一个aij,并给aij赋值为他的n倍。最后输出矩阵。参考答案:#include#includeint main()int a33;int i,j,n;printf(原来a的值:);for(i=0;i3;i+) /生成数组元素,并按矩阵形式输出 for(j=0;j3;
5、j+)aij=rand()%20; /rand()参看教材385页 /rand()%20 产生一个20以内的整数 printf(%5d,aij); printf(n);printf(请输入n:);scanf(%d,&n);for(i=0;i3;i+) /i表示每一行for(j=0;j=i;j+) /j从0到i,即每行的对角线及前面的数的列下标aij=aij*n;printf(n数组左下三角元素乘以n后值为:);for(i=0;i3;i+)for(j=0;j=i;j+)printf(%5d,aij); printf(n);return 0;运行结果:(4) 设计程序sy5-4.c,输入一个整数m
6、(2m9,在m行m列的二维数组中存放如下所示规律的数据。例如,若输入2,则输出:,若输入4,则输出: 算法分析:分析:m的值是不定的,所以可以申明一个二维数组int a1010,当m=2时,只用前两行两列,当m=4时,就只用前四行四列;元素aij的值和他的行列下标可找到规律如下:每行的第0列元素ai0=i+1;除第0列元素其它元素aij=ai0*(j+1)。参考答案:#includevoid main()int a1010,i,j,m;printf(Input m:);scanf(%d,&m);for(i=0;im;i+) /*初始化第一列元素*/ai0=i+1; for(i=0;im;i+)
7、 /*处理其余元素:为第0列元素*(j+1)*/for(j=1;jm;j+) aij=ai0*(j+1);for(i=0;im;i+) /*输出矩阵*/ for(j=0;jm;j+) printf(%5d,aij); printf(n);运行结果:(5) 设计程序sy5-5.c,将33矩阵中元素的值按列右移1个位置,右边被移出矩阵的元素绕回左边。例如,有下列矩阵 1 2 3 4 5 6 7 8 9 计算结果为 31 2 64 5 9 7 8 算法分析: 二维数组的移动,类似于一维数组的元素移动;只是在一维数组移动的外面加上外循环。即:对每一行元素(i行),首先把最后一列即ai2用中间变量t保存
8、;然后就从第1列到第0列,每个元素向后移动一列(aij=aij-1);最后再给ai0赋值为t(以前的ai2)。参考答案:#include#includeint main()int a33;int i,j,t;printf(原来数组a的值:n);for(i=0;i3;i+) /生成数组元素,并按矩阵形式输出 for(j=0;j3;j+)aij=rand()%20; /rand()参看教材385页 /rand()%20 产生一个20以内的整数 printf(%5d,aij); printf(n);for(i=0;i0;j-) /从最后一列到第1列逐次向后移动一列 aij=aij-1; ai0=t;
9、 /给第一列赋值t,即以前行的最后一列printf(矩阵变换后:n);for(i=0;i3;i+) for(j=0;j3;j+) printf(%5d,aij);printf(n);return 0;运行结果:5、设计程序sy4-5.c,从键盘输入m的值(2=m=9),并用双重循环给数组赋值,在m行m列的二维数组中存放如下所示的数据,并将结果输出在显示上。例如:输入3 输入5则输出: 则输出: 1 2 3 1 2 3 4 52 4 6 2 4 6 8 10 3 6 9 3 6 9 12 15 4 8 12 16 20 5 10 15 20 25算法分析:分析:m的值是不定的,所以可以申明一个二维数组int a1010,当m=3时,只用前三行三列,当m=5时,就只用前五行五列;元素aij的值和他的行列下标可找到规律如下:每行的第0列元素ai0=i+1;除第0列元素其它元素aij=ai0*(j+1)。参考答案:#includevoid main()int a1010,i,j,m;printf(Input m:);scanf(%d,&m);for(i=0;im;i+) /*初始化第一列元素*/
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度金融科技企业股权合作框架协议3篇
- 绿色农业的科技创新与实践
- 二零二五年度水资源保护堰塘承包管理合同3篇
- 二零二五年度高速铁路轨道施工合同3篇
- 2025年度文化艺术馆软装承接合同样本4篇
- 二零二五年度车库停车场智能停车引导系统采购合同4篇
- 二零二五年度成都高空广告安装公司高空作业防护用品供应合同2篇
- 校企合作在宠物人才培养中的实践与探索
- 学校活动成功执行的全方位策略
- 2025年统编版2024选修化学下册阶段测试试卷含答案
- 2024年中国华能集团燃料有限公司招聘笔试参考题库含答案解析
- 《红楼梦》中的男性形象解读
- 安全生产技术规范 第49部分:加油站 DB50-T 867.49-2023
- 《三国演义》中的语言艺术:诗词歌赋的应用
- 肠外营养液的合理配制
- 消防安全教育培训记录表
- 2023年河南省新乡市凤泉区事业单位招聘53人高频考点题库(共500题含答案解析)模拟练习试卷
- 2023年小升初简历下载
- 广府文化的奇葩
- 公路工程标准施工招标文件(2018年版)解析
- 七年级地理下册期末试卷(人教版)
评论
0/150
提交评论