4 自定义函数删除下标为index的数组 (20分)

4 自定义函数删除下标为index的数组 (20分)
本题要求自定义函数delIndex,删除下标为index的元素,数组的长度减1。 程序运行时,输入要删除的下标值,输出调用delIndex函数后的数组值。

函数接口定义:

void delIndex(int a[], int &n, int index);  //删除n个int型元素的一维数组a中下标为index的元素,若删除成功,将n的值减1 

a 是int*值,表示int型元素的数组的首地址(可以看做数组名);

n 是int型变量的引用,表示数组的元素个数;

index是int值,表示要删除元素的下标

如果index在数组的下标范围,删除该下标的值,并修改数组的实际长度n。注意:数组元素是一次性分配的连续内存,不能释放某一个元素的内存

裁判测试程序样例:

#include<iostream>
#include<iomanip>
using namespace std;

void output(const int a[],int n); //输出一维数组
void delIndex(int a[], int &n, int index);  //若index在数组下标范围,删除第index元素的值,并将n的值-1


const int N=20;
int main()
{
    int a[N]={12,25,30,50,48,9,89,23,45,58,69,88,77,65,98};
    int n=N; 
    int loc;
    cin >> loc;
    delIndex(a,n,loc);
    output(a,n);
    return 0;
}
void output(const int a[],int n)
{
    for(int i=0;i<n;i++)
	cout << setw(5) << a[i];
}
/* 请在这里填写自定义函数定义的答案 */

输入样例1:

3

输出样例1:

12 25 30 48 9 89 23 45 58 69 88 77 65 98 0 0 0 0 0

输入样例2:

20

输出样例2:

12 25 30 50 48 9 89 23 45 58 69 88 77 65 98 0 0 0 0 0

void delIndex(int a[], int &n, int index)
{
    if(index<19&&index>=0)
    {
        for(int i=index;i<n-1;i++)
        {a[i]=a[i+1];}
        a[n-1]=0;
        n--;
        }
   else
   {a[index]=0;}//觉得这道函数题没一点意思,很烦人
            
}
  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值