c語言刪除數組中的某個元素
發布時間: 2024-04-13 13:29:52
『壹』 c語言中怎麼刪除數組中的一個元素
方法:
刪除就是將其下標所在位置的中的內容置為空(也就是0),然後從此位置開始,後面的內容前移,再把最後那個位置的置為空(就是0)。
前移無非就是 類似 arr[ i - 1] = arr[ i ] 這個意思。
『貳』 c語言數組元素的刪除與增加。
C語言中的數組本質上是在計算機內存中分配的連續空間。
如果需要對元素進行插入和刪除,並不能直接將內存中為該數組分配的空間進行插入/新增和刪除,而是只能通過數據復制的方式將本來不在這個位置的元素進行移動,看起來像是元素的前移和後移。
舉個例子吧:整型數組(1, 2, 3, 4, 5),如果要把2刪除,那麼可以將3,4,5分別向前移動,變成(1, 3, 4, 5, 5)。由於數組長度分配以後不會變化,因此最後一個多餘的5實際上並不能刪掉,它只是表示無意義的位置。因此對於編程人員來講,需要另一個參數來記錄這個數組中你認為有用的元素是前多少個。
值得注意的是,如果數組長度不足以保存新的元素時,是無法動態地增加數組長度的。如果非要這么做,必須要在數組分配時保證數組大小足夠大。這也就是一些新手經常將數組長度設置為1000,10000的原因。
回到這個問題:
//預定義的數組,長度為20
intarray[20]={0};
//數組當前有效長度
intarrayLen=0;
//如果不是全局數組,則需要將數組指針和數組長度指針傳入進行修改
voidinsertArray(intnewElement,intindex)
{
//這里沒有做數組長度的檢驗,你需要自己完成
inti;
for(i=arrayLen++;i>index;)
array[i--]=array[i-1];//後移
array[index]=newElement;
}
voiddeleteArrayElement(intindex)
{
for(;index<arrayLen;)
array[index++]=array[index+1];//前移。要刪除的位置會被直接覆蓋
arrayLen--;
}
『叄』 c語言數組元素的刪除
#include<stdio.h>
intmain(){
inti,j,n,m,a[100];
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
scanf("%d",&m);
for(i=0;i<n;i++)
if(a[i]==m)
{
for(j=i;j<n-1;j++)
a[j]=a[j+1];
i--;n--;
}
for(i=0;i<n;i++)
printf("%d",a[i]);
return0;
}
『肆』 c語言如何刪除數組中的某個元素
C語言刪除數組指定元素的源代碼如下:
#include <stdio.h>
main()
{
char s[80],c;
int j,k;
printf(" Enter a string: ");
gets(s);
printf(" Enter a character: ");
c=getchar( );
for(j=k=0;s[j]!= '