1、创建两个包含5个整数元素一维数组a[5]、b[5],及一个包含10个元素的数组c,实现以下操作(30分):
(1)手动输入元素(数值范围在1-100之间)初始化两个数组中的元素。
(2)编写选择法排序函数order(int a[],int n)。将a、b两个数组元素按照升序排序,然后打印到屏幕。
(3)复制数组a,b元素依次填充数组c。
实验思路:有a和b两个数组,都要进行手动输入、排序和输出,这时手动输入、排序和输出都分别编写一个函数,在需要时调用即可,用数组a和b依次填充数组c时用到for循环和while循环。
#include <iostream>
using namespace std;
void input(int k[],int len);//手动输入数组元素函数
void order(int m[],int len);//选择排序数组函数
void print(int a[],int len);//打印数组函数
int main() {
int a[5];
int b[5];
cout << "请为a数组赋值" << endl;
input(a,5);//手动输入元素
cout << "请为b数组赋值" << endl;
input(b,5);//手动输入元素
order(a,5);//a数组排序
cout << "a数组排序后为" << endl;
print(a,5);//a数组打印
order(b,5);//b数组排序
cout << "b数组排序后为" << endl;
print(b,5);//b数组打印
int c[10];//定义数组c
for(int i=0;i<10;i++){
while(i<5){
c[i] = a[i];
i++;
}
while(i>=5&&i<10){
c[i] = b[i-5];
i++;
}
}
cout << "c数组为" << endl;
print(c,10);//数组c打印
return 0;
}
//手动输入数组元素函数
void input(int k[],int len){
cout << "请输入"<< len << "个在1~100内整数" << endl;
for(int i=0;i < len;i++){
int m = 0;
cin >> m;
if(m>0 && m<=100)
k[i] = m;
else
cout << "输入错误" << endl;
}
}
//选择排序数组函数
void order(int m[],int len){
for(int i=0;i<len-1;i++){
int k = i;
for(int j=i+1;j<len;j++){
if(m[k]>m[j])//不能写成m[i]>m[j],这样不会找到这个数组里最小的,而是会找到最后一个比m[i]小的
k = j;
}
swap(m[i],m[k]);
}
}
//打印数组函数
void print(int a[],int len){
for(int i=0;i<len;i++)
cout<< a[i] << " ";
cout << endl;
}