概述
题目描述
设计一个MyArray类,用来模拟一个由小到大的有序的整数序列,实现输入一个整数,将其插入序列,并保持该序列由小到大有序。MyArray类原型如下:
class MyArray
{private:
int a[50]; //存储一个由小到大有序的整数序列
int n; //记录序列中数据的个数
public:
void MyArray(int x) { n=x; } //初始化,通过x的值确定序列的大小
void input(); //从键盘输入n个由小到大有序的整数
void insert(int k); //将k值按由小到大的顺序插入到序列中(注意,插入一个数据后,n值要增一)
void output(); //输出序列中的数据
};
输入
第一行有一个正整数n,表示原始的整数序列长度为n,保证n不超过50。
第二行有n个整数,表示原始的整数序列,保证这个序列是从小到大给出的。
第三行有一个整数,表示需要插入的整数。
输出
在一行中输出n+1个整数,表示完成插入的整数序列。每个整数后输出一个空格。请注意行尾输出换行。
样例输入
10 1 2 3 4 5 6 7 9 10 11 8
样例输出
1 2 3 4 5 6 7 8 9 10 11
#include<iostream>
using namespace std;
class MyArra
{private:
int a[50];
int n;
public:
void MyArray(int x) { n=x; }
void input();
void insert(int k);
void output();
};
void MyArra::output(){
for(int i=0;i<n;i++)
cout<<a[i]<<" ";
}
void MyArra::input(){
for(int i=0;i<n;i++)
{
cin>>a[i];
}
}
void MyArra::insert(int k){
for(int i=0;i<n;i++)
{
if(k<=a[i])
{
n++;
for(int j=n;j>i;j--)
{
a[j]=a[j-1];
}
a[i]=k;
break;
}
}
}
int main()
{
int n;
cin>>n;
MyArra a;
a.MyArray(n);
a.input();
int p;
cin>>p;
a.insert(p);
a.output();
cout<<endl;
return 0;
}
最后
以上就是拉长凉面为你收集整理的C++综合练习——MyArray类的全部内容,希望文章能够帮你解决C++综合练习——MyArray类所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复