1. 程式人生 > >測試:刪除指定位置上的資料

測試:刪除指定位置上的資料

問題及程式碼:

#include <stdio.h>
#include <stdlib.h>
#define SIZE 100

int deleteData(int[],int,int);

int main()
{
    int n=10;//陣列中實際有用的元素
    int d[SIZE]={1,3,9,12,32,41,45,62,75,77};
    int locate,i;
    scanf("%d",&locate);
    n=deleteData(d,10,locate);
    for(i=0;i<n;i++)
    {
        printf("%d ",d[i]);
    }
    printf("\n");
    return 0;
}


/*
功能:刪除長度為len的arr陣列中指定位置loc上的元素
入口引數: 陣列名、陣列大小、要刪除元素的位置
返回值:刪除後陣列的大小
*/

int deleteData(int arr[],int len,int loc)
{
    int i=loc;//在要刪除的位置上寫入其後的資料(覆蓋)
    while(i<len-1)
    {
        arr[i]=arr[i+1];
        i++;
    }
    //刪除資料後,陣列大小縮減
    len--;
    return len;
}