已知一个降序的整型数组a[20],从键盘输入一个整数,如果该整数在数组中已经存在则输出“已经存在!“,否则将概述按顺序插入在相应位置,输出插入之前和插入之后的数组(要求:初始化已经排序的数组a的部分元素,自己能在原始数组中进行插入操作)。
时间: 2024-02-01 18:13:47 浏览: 51
以下是C++代码实现:
```
#include <iostream>
using namespace std;
int main() {
int a[20] = {20, 18, 16, 14, 12, 10, 8, 6, 4, 2}; // 已经排序好的数组
int n, i, j, flag = 0; // flag用来标记是否已经存在
cout << "请输入一个整数:";
cin >> n;
for (i = 0; i < 10; i++) { // 遍历数组
if (n == a[i]) { // 如果已经存在则输出
cout << "已经存在!" << endl;
flag = 1;
break;
}
if (n < a[i]) { // 如果找到了合适的位置
for (j = 9; j >= i; j--) { // 从后往前移动元素
a[j+1] = a[j];
}
a[i] = n; // 插入新元素
break;
}
}
if (flag == 0) { // 如果不存在则插入
a[10] = n;
}
cout << "插入之前的数组:";
for (i = 0; i < 10; i++) {
cout << a[i] << " ";
}
cout << endl << "插入之后的数组:";
for (i = 0; i < 11; i++) {
cout << a[i] << " ";
}
cout << endl;
return 0;
}
```
这里假设数组长度为20,但只初始化了前10个,因为题目中说要自己在原始数组中进行插入操作。如果输入的整数已经存在,则直接输出"已经存在!";否则遍历数组,找到合适的位置插入新元素,然后输出插入之前和插入之后的数组。
阅读全文