lab5
更新时间:2024-01-28 12:44:01 阅读量: 教育文库 文档下载
C++程序设计 lab5 学号:41130091 班级:材料1104 姓名:丁振文
实验5 数组
一、实验目的
⑴ 掌握一维数组和二维数组定义的规则,初始化及数组元素的引用方法。
⑵ 熟练掌握一维数组和二维数组的使用基本算法,解决排序和矩阵操作问题。 ⑶ 掌握字符数组与字符串的关系以及字符数组与字符串的使用方法。
二、实验内容和实验要求
1.练习题一
⑴ 编程实现将10个整数升序排列。 ⑵ 要求
从键盘输入10个整数存放在一个一维数组中,调整10个数按从小到大的顺序排列,并输出。分别用冒泡法和选择法实现。(写两个程序)
⑶程序代码 冒泡法:
#include
int i,j,t,a[10],k;
cout<<\输入10个整数:\ for(i=0;i<10;i++) cin>>a[i]; for(i=0;i<9;i++) for(j=i+1;j<10;j++) if(a[i]>a[j]) { t=a[i]; a[i]=a[j]; a[j]=t; } cout<<\输出升序排列的结果:\ for(i=0;i<10;i++) cout<
C++程序设计 lab5 学号:41130091 班级:材料1104 姓名:丁振文
选择法:
#include
int i,j,t,a[10],k;
cout<<\输入10 个整数:\ for(i=0;i<10;i++) cin>>a[i]; for(i=0;i<9;i++) { k=i; for(j=i+1;j<10;j++) if(a[k]>a[j]) k=j; if(k!=i) { t=a[i]; a[i]=a[k]; a[k]=t; } }
cout<<\输出升序排列的结果:\ for(i=0;i<10;i++) cout<
⑷运行结果贴图 冒泡法:
C++程序设计 lab5 学号:41130091 班级:材料1104 姓名:丁振文
选择法:
2.练习题二
⑴ 若干个数据首尾相连,构成一个圆环,找到连续的4个数之和最大的一段。 ⑵ 要求
从键盘输入数据,当输入-1时结束输入,输出其中连续的4个数之和最大的一段的起始数据的位置及这4个数的和。
⑶ 思路见实验教材 ⑷ 程序代码
#include C++程序设计 lab5 学号:41130091 班级:材料1104 姓名:丁振文 if(s>max) { max=s; j=i; } } cout<<\输出圆环数据:\ for(i=0;i ⑸ 运行结果 ⑹ 思考题及问题 题目中的数组元素数目不确定,在定义数组时,使用下面语句: int n; int a[n]; 是否可以,为什么? 答: 不可以,因为n为变量,而数组内下标必须为常数。 3.练习题三 ⑴ 矩阵是线性代数中的重要概念及研究工具,在计算机算法设计中,常常选用二维数组之类的数据结构来描述矩阵。试编程实现一个2×3矩阵A到3×2的矩阵B的转置。 C++程序设计 lab5 学号:41130091 班级:材料1104 姓名:丁振文 1 4 1 2 3 A = B = 2 5 4 5 6 3 6 ⑵ 要求 按行给原始的二维数组初始化。转置后存到另一个二维数组中,并输出。 ⑶ 思路 矩阵转置就是将原始数组行和列元素互换,即a[0][0]?b[0][0],a[0][1]? b[1][0],a[0][2]?b[2][0],a[1][0]?b[0][1],…,a[i][j]?b[j][i],…。 ⑷ 程序代码 #include cout< ⑸ 运行结果 C++程序设计 lab5 学号:41130091 班级:材料1104 姓名:丁振文 ⑹ 思考题及问题 分析: for (i=0; i<2; i++) { for (j=0; j<3; j++) cout< 答: 位置在内循环最后一行,起的作用是结束内循环。 三、自测练习 1.自测练习一 试统计键盘输入的一串英文字符中每种英文字符个数。 要求:⑴相同英文字符的大小写形式视为同一种统计对象; ⑵遇到任意非英文字符时统计终止; ⑶按每行10个数据的格式输出数据。 程序代码: #include char s[100],p[26],n; int i,j; C++程序设计 lab5 学号:41130091 班级:材料1104 姓名:丁振文 } int q[26]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; n='A'; cout<<\输入英文字符串:\gets(s); for(i=0;i<26;i++) { } for(j=0;s[j]>='A'&&s[j]<='Z'||s[j]>='a'&&s[j]<='z',j<100;j++) { } for(i=0,j=0;i<26;i++) { } return 0; 运行结果: cout< cout<<\for(i=0;i<26;i++) if(s[j]==p[i]||s[j]-32==p[i]) q[i]++; p[i]=n; n=n+1; C++程序设计 lab5 学号:41130091 班级:材料1104 姓名:丁振文 2.自测练习二 一个8个整数的数组,使用键盘输入数据,找出最小数和最大数及其下标,并输出。 程序代码: #include int i,j,k,m,n; int a[8]; j=k=0; cout<<\输入8个整数:\ for(i=0;i<8;i++) cin>>a[i]; m=n=a[0]; for(i=1;i<8;i++) { if(a[i]>m) { C++程序设计 lab5 学号:41130091 班级:材料1104 姓名:丁振文 } } } m=a[i]; j=i; else if(a[i] cout<<\最大的数为:\其下标为:\cout<<\最小的数为:\其下标为:\return 0; n=a[i]; k=i; 运行结果: 3.自测练习三 A和B是两个4×4的下三角方阵(即行列相等)初始化后的状态,请编程输出任意方阵(键盘输入方阵的行列值)的这类初始化状态。 1 0 0 0 2 3 0 0 A4×4 = B4×4 = 4 5 6 0 7 8 9 10 程序代码: #include 0 0 0 7 0 0 4 8 0 2 5 9 1 3 6 10 C++程序设计 lab5 学号:41130091 班级:材料1104 姓名:丁振文 #include int a[4][4],b[4][4],c[4][4]; int i,j,k; cout<<\输入原始数据:\ for(i=0;i<4;i++) } 运行结果: for(j=0;j<4;j++) cin>>a[i][j]; for(i=0,k=3;i<4;i++,k--) for(j=0;j<4;j++,k++) b[i][k%4]=a[i][j]; for(i=0;i<4;i++) for(j=0;j<4;j++) c[i][j]=b[j][i]; cout<<\矩阵为:\ for(i=0;i<4;i++) { } for(i=0;i<4;i++) { } for(j=0;j<4;j++) cout< cout< return 0; C++程序设计 lab5 学号:41130091 班级:材料1104 姓名:丁振文 4.自测练习四 完成实验教材P37第5题 程序代码: #include char s[100]; int i; cout<<\输入字符串:\ gets(s); for(i=0;i<100;i++) { } cout<<\输出字符串为:\ for(i=0;s[i]!='\\n';i++) cout< cout< 运行结果: if(s[i]>='A'&&s[i]<='Z') s[i]=s[i]+32; s[i]=s[i]-32; if(s[i]>='a'&&s[i]<='z') C++程序设计 lab5 学号:41130091 班级:材料1104 姓名:丁振文 5.自测练习五 有M(1000以内)个猴子围成一圈,每个有一个编号,编号从1到M。打算从中选出一个大王。经过协商,决定选大王的规则如下:从第一个开始,每隔N(任意正整数)个,数到的猴子出圈,最后剩下来的就是大王。要求,从键盘输入M、N(均为正整数),试编程计算哪一个编号的猴子将成为大王。 程序代码: #include int a[1000]; int M,N,j,n; float i; cout<<\输入M,N的数值:\ cin>>M>>N; i=-1; n=0; for(j=0;j if(a[j]!=0) } while(n==M); { } j++; if(j==M) j=0; a[j]=0; i=0; n++; i++; if(i==(N+1)) C++程序设计 lab5 学号:41130091 班级:材料1104 姓名:丁振文 } cout<<\成为大王的猴子编号为:\ return 0; 运行结果: 6、自测练习六 完成课后作业P90页的程序4,对上次作业结果进行验证。 程序代码: using namespace std; #include\const M=4; const N=4; int main() { int a[M][N],i,j,sum=0; for(i=0;i for(j=0;j for(i=1;i sum+=a[i][0]; sum+=a[i][N-1]; sum+=a[0][i]; sum+=a[M-1][i]; cin>>a[i][j]; for(i=0;j C++程序设计 lab5 学号:41130091 班级:材料1104 姓名:丁振文 } } cout<<\二维数组周边元素之和为:\return 0; 运行结果:
正在阅读:
lab501-28
独家购买权合同(用于VIE结构)02-26
钢铁雄心3修改省份内容大全02-03
大学物理教材 pdf07-06
2014全国名校真题模拟专题训练9-立体几何解答题4(数学)10-19
甲级单位编制自由拖布罩项目可行性报告(立项可研+贷款+用地+2013案例)设计方案09-20
静载习题08-21
银行高管考试试题大全10-01
现金管理核算岗位一责任百分考核办法10-20
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 4.执法资格考试题库c
- 翻译教程
- 35kV输电线路典型设计设计条件
- 关于印发重庆市房屋建筑和市政基础设施工程质量监督管理实施办法的通知
- 高中议论文六字结构
- 最新教育学试题(10套含答案)
- 基于MSP430F149单片机的多功能电子时钟设计
- 2019国考行测逻辑填空:慧眼识成语
- 检验检测机构资质认定评审准则及释义2016版
- 高中英语:Unit 5 Nelson Mandela Grammar(新人教必修1)
- 汽车4s店发展规划
- 工会送清凉主持词
- 剧毒化学品目录(2015版2018.10)
- 大学生就业指导课程教案图文
- 人教版二年级语文(上下册)生字表(二)生字的形近字、多音字、同音字
- 10kV户外开关箱技术规范书 - 图文
- 市城市管理局城市精细化管理经验交流发言材料
- 水果店创业分析报告(财务分析)
- 阳光建材家居策划
- 如何准备研究生考试