提高篇——删除指定位置上的元素

问题描述:

             删除指定位置上的元素。

程序代码:

#include <stdio.h>
#define SIZE 100
/*
*csdn学院--2016级
*目的:让代码见证成长(作为一个初学的菜鸟,如
*大家有发现错误,欢迎指正!)
*文件名称:Myfun157.c
*问题描述:删除指定位置上的元素
*作者:小臣小仁
*完成日期:2017年5月28日
*/
int deleteData(int [],int,int);

int main()
{
    int i,n=10;//数据中实际有用元素
    int locale;//删除locale位置数据
    int a[SIZE]={1,5,8,11,13,18,22,28,37,68};
    //判断是否超出数组有用数据的长度
    do{
    printf("Please enter the location you want to delete:");
    scanf("%d",&locale);
    }while(locale>n-1);
    n=deleteData(a,n,locale);
    for(i=0;i<n;i++)
        printf(" %d",a[i]);
    printf("\n");
    return 0;
}
/*删除数据中指定位子上的数据元素*/
int deleteData(int arr[],int len,int loc)
{
    int i=loc;
    //在要删除的数据的位置上写入其后数据,进行覆盖
    while(i<len-1)
    {
        arr[i]=arr[i+1];
        i++;
    }
    //删除数据后,其大小的缩减
    len--;
    return len;//删除数组后有用数组长度
}

输出结果:


心得体会:

              作为一个大学二的菜鸟,开始慢慢前进,多多少少感到有收获,由于水平有限,多多少少有错,望包涵委屈

### Java 中删除数组指定位置元素 在Java中,由于数组长度不可变的特点,直接从数组中删除一个元素是不可能的。为了实现这一功能,通常采用创建一个新的数组来保存除目标元素外的所有其他元素的方式[^1]。 下面是一个简单的例子展示如何删除给定索引处的元素: ```java public class ArrayElementDeletion { public static void main(String[] args) { int[] originalArray = {1, 2, 3, 4, 5}; int indexToDelete = 2; // 创建新数组,其长度比原数组少一 int[] newArray = new int[originalArray.length - 1]; // 将不需要被删除的部分复制到新的数组里 System.arraycopy(originalArray, 0, newArray, 0, indexToDelete); if (indexToDelete < originalArray.length - 1){ System.arraycopy(originalArray, indexToDelete + 1, newArray, indexToDelete, originalArray.length - indexToDelete - 1); } // 打印结果 for(int value : newArray){ System.out.print(value + " "); } } } ``` 这段代码通过`System.arraycopy()`方法高效地完成了数据迁移工作,并最终得到了不包含指定索引位置元素的新数组。 对于C语言来说,则可以通过覆盖的方式来模拟删除操作——即把待删元素后的所有元素向前移动一位,最后的位置置为初始值(如0),以此达到逻辑上的“删除”。这种方式不会改变原始数组的实际大小,但在大多数应用场景下已经足够满足需求[^2]。 上述两种方式各有优劣,在实际开发过程中可以根据具体场景和个人偏好选择合适的做法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值