实验 数组-参考答案.docx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《实验 数组-参考答案.docx》由用户(最好的沉淀)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 数组参考答案 数组 参考答案
- 资源描述:
-
1、实验 6 数组一、一维数组实验0 1 2 3 4 5 6 7 8 9#includevoid main()int i, j, a10, t; printf(Input 10 number: ); for(i=0; i10; i+)scanf(%d, &ai);printf(origin data: ); for(i=0; i10; i+)printf(%d , ai);printf(n); for(i=0,j=9;ij ; i+,j-)t=ai; ai=aj; aj= t;printf(After reversed: ); for(i=0; i10; i+)printf(%d , ai); p
2、rintf(n);/*读入数据*/*输出原始数据*/*逆序存放*/*输出逆序存放后得数据*/2、 编程:输入长度为 10 得整型数组并输出;然后将其逆序存放后再输出。例如:3、 编程:输入 n 个(1n=10)正整数并保存到数组中,求出最大值、最小值、平均值,以及最大值、最小值在数组中得下标分别就是多少。例如:5#include void main()int i, n , max, min, a10, sum; float average;printf(Input n (1n=10): ); scanf(%d, &n);if(1n & n=10)printf(Input %d integer:
3、, n);for(i=0, sum=0; in; i+)scanf(%d, &ai); sum+=ai;average=(float)sum/n;for(i=0, max=0, min=0; i amax) max= i;if(ai amin) min= i;/*输入数据并求累加与*/*求出平均值*/*求最大、最小值得下标*/printf(max=%-5d index=%dn, amax, max); printf(min=%-5d index=%dn, amin, min);printf(average=%、2fn, average);elseprintf(数据超出范围);#include
4、void main()inti, max, min;float a10, ave;printf(请输入 10 个评委得打分:); for(i=0, ave=0; i10; i+)scanf(%f, &ai); ave+=ai;for(i=0, max=0 , min=0; iamax) max=i;if(aiamin) min=i;ave=ave-amax-amin; ave=ave/8;printf(该选手得评委打分就是:); for(i=0; i10; i+)/*输入分数并求累加与*/*求最大、最小值得下标*/4、 编程:青年歌手参加歌曲大奖赛,有 10 个评委对她(她)进行打分,试编程求
5、这位选手得平均得分并输出(去掉一个最高分与一个最低分)。printf(%、2f, ai); printf(n);printf(去掉最高分%、2f,去掉最低分%、2f,该选手得平均得分就是%、2fn, amax, amin,ave);5、 编程:用两种方法输出斐波那切数列得前 40 项(参考例 6-4)。要求: (1)方法 1:不使用数组;#include void main()int f1=1, f2=1, f3, i; printf(%12d%12d, f1, f2); for(i=3; i=40; i+)f3=f1+f2; printf(%12d, f3); if(i%5=0)printf
6、(n); f1= f2;f2= f3;#include void main()int i;int fib40; fib0=fib1=1; for(i=2; i40; i+)fibi= fibi-1 + fibi-2;for(i=0; i40; i+)printf(%12d,fibi); if(i+1)%5=0)printf(n);/*计算其余得 38 个数*/(2)方法 2:使用一维数组。6、 编程:输入n 个(1n=10)float 型得数据并保存到数组中,用冒泡法或选择法将它们从大到小排序后输出。例如:552351144950510490230140#include void main()
7、int i, j, n;float a10, t; printf(Input n: );scanf(%d,&n); if(n1 & n=10)printf(Input %d number:, n); for(i=0;in;i+)scanf(%f,&ai); printf(Before sorted:); for(i=0; in; i+)printf(%、2f , ai); printf(n);for(i=0; in-1; i+) for(j=0; jn-i-1; j+)if( aj aj+1 )t=aj; aj=aj+1; aj+1=t;/*输出排序前得数据*/*冒泡排序*/printf(Af
8、ter sorted:); for(i=0; in; i+)printf(%、2f , ai); printf(n);/*输出排序结果*/elseprintf(数据超出范围);7、 在上题基础上(输入 n 个 float 型得数据并保存到数组中,用冒泡法或选择法将它们从大到小排序后输出)程序分析:首先判断此数就是否大于最后一个数,然后再考虑插入中间得数得情况,插入后此元素之后得数, 依次后移一个位置。#include void main()int i, j, n, p;float a10, t, m;printf(Input n: );scanf(%d, &n); if(n1 & n=10)p
9、rintf(Input %d number:, n); for(i=0; in; i+)scanf(%f, &ai);完成:在已经排好序得数组(长度不足 10)中插入一个数 m(键盘输入)后输出,保持数组得降序排列。printf(Before sorted: );/*输出排序前得数据*/ for(i=0; in; i+)printf(%、2f , ai); printf(n);for(i=0; in-1; i+)/*冒泡排序*/ for(j=0; jn-i-1; j+)if( aj aj+1 )t=aj; aj=aj+1; aj+1=t;elseprintf(After sorted:);/*
10、输出排序结果*/ for(i=0; in; i+)printf(%、2f , ai);printf(n);printf( 请输入要插入得数据 m: ); scanf(%f, &m);/*找到插入位置*/if(m an-1)/*如果 m 比最后一个元素小,则直接插入到最后得位置*/ p = n;for(i=0; i ai)p=i;break;for(i=n; i=p+1; i-)/*将插入位置之后得元素后移*/ ai=ai-1;/*插入*/ ap=m;printf(插入%、2f 后:, m);/*输出插入后结果*/ for(i=0; in+1; i+)printf(%、2f , ai); pri
11、ntf(n);elseprintf(数据超出范围);二、二维数组实验1、 以下程序功能为:将下列矩阵中得元素向右移动一列,最后一列移至第一列。找出并改正以下源程序中错误,通过调试得出正确得运行结果。14681012源程序(有错误得程序) #include #define ROW 2#define COL 3 int main()int aROWCOL=1,4,6,8,10,12;int i,j,temp; for(i=0;i=0;j-)aij=aij+1;/*调试时设置断点*/改为 aij+1=aij;ai0=temp;/*调试时设置断点*/for(int i=0;iROW;i+)/去掉 in
12、tfor(j=0;jCOL;j+) printf(%6d,aij);printf(n);return 0;运行结果(改正后程序得运行结果)614128102、 编程:利用二维数组计算并打印一个 n 行得杨辉三角。例如:11112113311464114101051提示:第一列及对角线上得元素都就是 1,其她元素通过计算得出:如果用 i 表示行,j 表示列,则第 i 行 j 列得元素#include void main()int a1010=0;int i, j, n;/设最多 10 层printf(请输入杨辉三角形得层数:);scanf(%d, &n); if(n10)printf(层数超出范
13、围); return;for(i=0;in;i+)ai0=1;aii=1;for(i=2;in;i+)for(j=1;ji;j+)/给第 0 列与主对角线上得元素赋值 1/计算其她位置元素得值aij=ai-1j-1+ai-1j;for(i=0;in;i+)/输出for(j=0;j=i;j+) printf(%4d,aij);printf(n);12345678910110#include void main()int a34,i,j;printf(请输入3 X 4整数矩阵:n); for(i=0; i3; i+)for(j=0; j4; j+) scanf(%d, &aij);printf(按
展开阅读全文