数组插入和删除
#include <iostream>
using namespace std;
int main()
{
//实现数组元素的删除和插入
double power[99]; // 数组的大小一旦确定了,就不能再更改了!
int powerCount = 0; //当前数组中的元素个数
double insertPower; //要插入的数值
int insertIndex = 0; //默认要插入的位置为数组的第一个位置
power[powerCount++] = 45771;
power[powerCount++] = 42322;
power[powerCount++] = 40907;
power[powerCount++] = 40706;
double temp; //交换时候用的临时变量
//冒泡排序
for(int i = 0; i < powerCount; i++)
{
for(int j = 0; j < powerCount; j++)
{
if(power[j] < power[j+1])
{
temp = power[j];
power[j] = power[j+1];
power[j+1] = temp;
}
}
}
cout << "排序后: " << endl;
for(int i = 0; i < powerCount; i++)
{
cout << power[i] << '\t';
}
cout << endl;
//插入
cout << "请输入要插入的数字: ";
cin >> insertPower;
insertIndex = powerCount; //当插入的元素是最小的时候应该放在数组的最后一位
//1、找到第一个比插入数字大的位置 insertIndex
for(int i = 0; i < powerCount; i++)
{
if(insertPower > power[i])
{
insertIndex = i;
break;
}
}
//2、 从最后一个元素开始,将数字复制到后面一个元素中
for(int i = powerCount - 1; i >= insertIndex; i--)
{
power[i+1] = power[i];
}
//3、 将要插入的数字赋值给下标为 insertIndex 的元素
power[insertIndex] = insertPower;
//4、将数组的总长度+1
powerCount++;
cout << "插入后: " << endl;
for(int i = 0; i < powerCount; i++)
{
cout << power[i] << '\t';
}
//删除
//1、找到要删除的元素下标
double deletePower;
int deleteIndex = INT_MIN;
cout << endl;
cout << "请输入要删除的数字: ";
cin >> deletePower;
for(int i = 0; i < powerCount; i++)
{
if(deletePower == power[i])
{
deleteIndex = i;
break;
}
}
if( deleteIndex == INT_MIN )
{
cout << "没有找到该元素!";
}
else
{
//2、从找到的下标开始,后面一个元素赋值给前面一个元素
for(int i = deleteIndex; i < powerCount - 1; i++)
{
power[i] = power[i+1];
}
//3、总长度-1
powerCount--;
cout << "删除后: " << endl;
for(int i = 0; i < powerCount; i++)
{
cout << power[i] << '\t';
}
}
return 0;
}