lab5

2019-08-20 20:45

C++程序设计 lab5 学号:41130091 班级:材料1104 姓名:丁振文

实验5 数组

一、实验目的

⑴ 掌握一维数组和二维数组定义的规则,初始化及数组元素的引用方法。

⑵ 熟练掌握一维数组和二维数组的使用基本算法,解决排序和矩阵操作问题。 ⑶ 掌握字符数组与字符串的关系以及字符数组与字符串的使用方法。

二、实验内容和实验要求

1.练习题一

⑴ 编程实现将10个整数升序排列。 ⑵ 要求

从键盘输入10个整数存放在一个一维数组中,调整10个数按从小到大的顺序排列,并输出。分别用冒泡法和选择法实现。(写两个程序)

⑶程序代码 冒泡法:

#include using namespace std; int main() {

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 using namespace std; int main() {

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 using namespace std; int main() { int aa,i,n=0,j,max=1,s=0; int a[20]; cout<<\输入圆环数据:\ cin>>aa; while(aa!=-1) { a[n++]=aa; cin>>aa; } for(i=0;i

C++程序设计 lab5 学号:41130091 班级:材料1104 姓名:丁振文

if(s>max) { max=s; j=i; } } cout<<\输出圆环数据:\ for(i=0;i return 0; }

⑸ 运行结果

⑹ 思考题及问题

题目中的数组元素数目不确定,在定义数组时,使用下面语句: 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 #include using namespace std; int main() { int a[2][3]={{1,2,3},{4,5,6}}; int i,j,b[3][2]; cout<<\原始矩阵:\ for(i=0;i<2;i++) { for(j=0;j<3;j++) cout< for(j=0;j<2;j++)

cout<

⑸ 运行结果


lab5.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:一般将来时练习题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: