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< ⑸ 运行结果