測試:刪除指定位置上的資料
阿新 • • 發佈:2018-12-20
問題及程式碼:
#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; }