咸余羊 2021-05-14 23:59 采纳率: 0%
浏览 1036

c++中的数组问题。求解

c++中如何删除数组中特定的值,求大佬帮忙提示一下一下。刚开始学这门语言

  • 写回答

8条回答 默认 最新

  • CSDN专家-cpp_learner 2021-05-15 09:40
    关注

    给你思路和代码,你先按着思路自己去写,实在写不出来,再来参考代码,这让对你的成长帮助很大!

    思路:遍历数组,找到需要移除数值对应数值中的索引位置。然后从索引位置开始遍历数组,将数组索引后面的值往前挪一个位置,以达到覆盖删除效果。

     

    代码:

    #include <iostream>
    using namespace std;
    
    // 移除数组特定的值
    bool removeArrayAppointData(int *arrays, int length, int data);
    
    
    int main() {
    	int arrays[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
    	int length = sizeof(arrays) / sizeof(arrays[0]);	// 计算数组的长度
    	int data = -1;
    
    	cout << "数组元素:" << endl;
    	for (int i = 0; i < length; i++) {
    		cout << arrays[i] << ", ";
    	}
    	cout << endl;
    
    	cout << "请输入需要移除的元素:" << endl;
    	cin >> data;
    
    	// 移除指定元素
    	removeArrayAppointData(arrays, length, data);
    	
    
    	cout << "移除元素后:" << endl;
    	for (int i = 0; i < length - 1; i++) {	// 长度length - 1,后续遍历就不会将最后一个数值打印出来,但其还是存在于数组中
    		cout << arrays[i] << ", ";
    	}
    	cout << endl;
    	
    	return 0;
    }
    
    bool removeArrayAppointData(int *arrays, int length, int data) {
    	int indexs = -1;	// 存储数值对应数值的索引下标
    
    	// 合法性检查
    	if (arrays == NULL || length < 1) {
    		cout << "数据不合法!" << endl;
    		return false;
    	}
    
    	// 寻找数值对应数组的下标
    	for (int i = 0; i < length; i++) {
    		if (arrays[i] == data) {
    			indexs = i;
    		}
    	}
    
    	// 如果indexs还是等于-1,说明数组中没有与之对应的值
    	if (indexs == -1) {
    		cout << "没有找到值!" << endl;
    		return false;
    	}
    
    	// 将数组索引后面的值都往前诺动一个位置,以达到删除效果(弊端:数组最后一个值还是存在的)
    	for (int i = indexs; i < length; i++) {
    		arrays[i] = arrays[i + 1];
    	}
    
    	return true;
    }
    

    有不懂的再评论提问!

    如果问题解决,请点个采纳,谢谢!

    评论

报告相同问题?

问题事件

  • 专家修改了标签 1月25日

悬赏问题

  • ¥100 复现论文:matlab仿真代码编写
  • ¥15 esp32驱动GC9A01循环播放视频
  • ¥15 惠普360g9的最新bios
  • ¥30 这个功能用什么软件发合适?
  • ¥60 微信小程序,取消订单,偶尔订单没有改变状态
  • ¥15 用pytorch实现PPO算法
  • ¥15 关于调制信号的星座图?
  • ¥30 前端传参时,后端接收不到参数
  • ¥15 这是有什么问题吗,我检查许可证了但是显示有呢
  • ¥15 机器学习预测遇到的目标函数问题