数组插入和删除

时间:2025-02-09 07:13:19
#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; }