南昌大学C++实验4数组.docx
- 文档编号:27772831
- 上传时间:2023-07-04
- 格式:DOCX
- 页数:14
- 大小:46.07KB
南昌大学C++实验4数组.docx
《南昌大学C++实验4数组.docx》由会员分享,可在线阅读,更多相关《南昌大学C++实验4数组.docx(14页珍藏版)》请在冰豆网上搜索。
南昌大学C++实验4数组
南昌大学实验报告
学生姓名:
王维学号:
6100212202专业班级:
网工121
实验类型:
□验证□综合
设计□创新实验日期:
实验成绩:
一、实验名称
实验4数组
二、实验目的
1.掌握数组的基本概念,包括:
数组的定义、数组的类型、数组的初始化、数组的赋值、数组元素下标的范围、数组元素的正确以及引用数组元素的输入/输出。
2.掌握字符数组与字符串的使用方法。
理解字符数组与其它数组的区别、理解字符串及其特点。
掌握常用的字符串处理库函数的用法并清楚对字符串的简单处理。
3.掌握与数组相关的算法,包括排序算法和查找算法等。
三、实验内容
有关数组的程序设计
四、实验环境
PC微机
DOS操作系统或Windows操作系统
visualc++程序集成环境
五、实验步骤
1.编程实现:
对任意一个一维数组,从中找出数组元素的最大值和最小值。
要求:
(1)数组为整型数组(10个元素)。
(2)使用scanf函数实现数组元素的输入。
在输入前给出必要的提示。
(3)输出时给出必要的说明,首先输出原始的10个元素,换行后输出最大值以及最大值在数组中的位置、最小值以及最小值在数组中的位置。
(4)如果现改为20个元素的数组,怎样修改程序?
2.编程实现:
在给定的字符串中查找满足条件的第一个字符。
要求:
(1)字符串采用初始化的方式处理。
(2)通过scanf函数读入一个任意字符。
(3)在字符串中查找该字符,如果存在该字符,输出该字符在字符串中的位置以及相应的说明。
如果不存在该字符,则要给出相应的信息。
3.编程实现:
首先任意输入一个大于2且小于10的整数n,再输入一个由n决定的二维整型数组(n
n),形成n
n阶矩阵,将矩阵中最大元素所在的行和最小元素所在的行对调后,再输出该矩阵(注意:
数组不允许动态定义)。
例如:
原始数据:
n=4结果数据:
12348111416
3591035910
81114161234
1527615276
要求:
(1)本题中所涉及到的循环都采用for语句。
(2)在输入/输出时进行必要的说明。
(3)对输入的2~10之间的整数(例如4)以n=4的格式输出。
(4)输入一个n
n矩阵(假定最大值与最小值不在同一行上),输出原始矩阵数据(按上述矩阵形式)。
(5)查找最大值与最小值,将矩阵中最大元素所在的行和最小元素所在的行对调,输出对调后的矩阵数据。
4.编程实现“折半查找”的过程。
折半查找的处理过程是:
在一个数据已排好序的数组中,首先比较关键字与数组中间的元素,如果两者相等,则查找结束;如果前者比后者小,则要查找的数据必然在数组的前半部,此后只需在数组的前半部中继续折半查找;如果前者的数值比后者大,则要查找的数据必然在数组的后半部,此后只需在数组的后半部继续进行折半查找。
要求:
(1)设定一个数组存放20个数据,用赋初值的方法在程序中给出(假设这些数据已排序)。
(2)用scanf函数输入一个要找的数。
(3)对查找的结果给出相应的说明,如果找到该数,则给出该数是数组中第几个元素。
如果该数不在数组中,则输出“无此数”信息。
(4)任意输入一些数据,检查程序的正确性。
(5)修改程序,设定输入的数据是无序的,采用scanf函数的形式输入,首先要对这些无序的数据进行排序,然后再采用“折半查找”。
最后通过测试几组差别较大的数据检查程序的正确性。
5.编程实现:
三个学生、五门课程的成绩分别存放在4×6矩阵的前3×5列,计算出每个学生的平均成绩存放在该数组的最后一列的对应行上。
计算单科的成绩总和存放在最后一行的对应列上,并输出单科成绩的平均分。
输入/输出格式举例如下:
Input(输入成绩):
6587685678
8394678591
7175698489
Output(输出结果):
658768567870.5
839467859184.0
717569848977.5
219.0256.0204.0258.0232.00
average:
73.085.368.086.077.3
要求:
(1)数组类型为实型,输入成绩由scanf函数实现。
(2)输出已输入的原始成绩数据(3×5)。
(3)计算每个学生的平均成绩以及单科的成绩总和并按要求填入到数组中,输出填入结果后的数组(4×6)。
(4)j计算单科平均成绩后输出。
六、实验数据及处理结果
/*写出各个习题的算法(用流程图表示)、程序、结果并能对结果的正确性及产生的问题进行适当分析,重点说明实验遇到的难点及解决办法。
注意程序变量命名应见名知意、有适当的注释,程序书写规范*/
【习题1】
【设计思路】
【数据需求】
【程序实现】
#include
usingnamespacestd;
voidmain()
{
inta[10],i;
cout<<"请输入10个数字"< for(i=0;i<10;i++) { scanf("%d",&a[i]); } intmax,min,x,y; max=min=a[0]; x=y=0; for(i=1;i<10;i++) { if(a[i]>max) { max=a[i]; x=i; } elseif(a[i] { min=a[i]; y=i; } } printf("最大值为%d,所在位置是%d,最小值为%d,所在位置是%d\n",max,x+1,min,y+1); } 【程序测试】 【修改后程序实现及结果】 【习题2】 【设计思路】 【数据需求】 【程序实现】 #include usingnamespacestd; voidmain() { chara[]="ABCDEF";//初始字符串 cout<<"请输入要查找的字符: "; charch; cin>>ch; inti; for(i=0;a[i]! ='\0';i++) { if(a[i]==ch) break; } if(a[i]=='\0') cout<<"没有找到字符"< else cout<<"找到字符"< } 【程序测试】 【习题3】 【设计思路】 【数据需求】 【程序实现】 #include usingnamespacestd; voidmain() { inta[10][10],n; cout<<"请输入一个整数n(2 "; cin>>n; cout<<"请输入原始数据: "< inti,j; for(i=0;i for(j=0;j cin>>a[i][j]; intmin=a[0][0],max=a[0][0]; intx=0,y=0; for(i=0;i for(j=0;j { if(a[i][j]>max) { x=i; max=a[i][j]; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 南昌大学 C+ 实验 数组