题目描述
设计一个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个整数,表示完成插入的整数序列。每个整数后输出一个空格。请注意行尾输出换行。
样例输入
复制代码
1
2
310 1 2 3 4 5 6 7 9 10 11 8
样例输出
复制代码
11 2 3 4 5 6 7 8 9 10 11
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51#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类内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复