C語言陣列中的刪除元素怎麼寫,C語言陣列中的刪除一個元素怎麼寫

2021-04-17 20:48:45 字數 2681 閱讀 8390

1樓:小花朵

直接把元素後一位覆蓋前一位就行了

最後把陣列最後一位清空即可

2樓:宛禎鄧芙蓉

#include

main()

c語言中怎麼刪除陣列中的一個元素

3樓:禾生七七

方法:刪除就是將其下

copy標所在位置的中的內容置為空(也就是0),然後從此位置開始,後面的內容前移,再把最後那個位置的置為空(就是0)。

前移無非就是 類似 arr[ i - 1] = arr[ i ] 這個意思。

當可以確認陣列中存放的都是整數,你可以將這個元素置為-1表示刪除。增加就是先檢查你的陣列中有沒有-1的元素,如果有,就設定為你的值。如果全部都滿了,就開一個更大的陣列,把資料拷貝過去。

把相應位後面的一次前移一位,就是實現了刪除操作,可以用個for迴圈就可以實現了。

陣列的記憶體分配:變數在記憶體中是從大到小定址的(記憶體中以位元組為單位),比如00000000 00000000 00000000 00001010在記憶體中,00001010的地址是最小的;而陣列則有些不同,陣列的元素自然的從上往下排列 儲存,整個陣列的地址為首元素的地址。 (但是組成元素的位元組還是按從大到小)。

4樓:匿名使用者

#include "stdio.h"

int main()

c語言中刪除一個陣列元素 30

5樓:匿名使用者

一般的陣列元素無法刪除,只能將值改變為另一個特定的值,然後發現這個值就直接轉向下一個元素.

用連結串列可以刪除表中的一個結點.

6樓:匿名使用者

如果抄陣列裡全是3 那我輸入襲要刪除的3之後 樓主想要一個什麼結果呢

是9個3 還是一個元素

也不輸出?

下面的程式可能能實現樓主的意思

#include

void main()

,n,i;

printf("input the number to delete:");

scanf("%d",&n);

for(i=0;i<10;i++)

if(a[i]!=n)

printf("%d ",a[i]);}

7樓:匿名使用者

可以不輸出 也可以把要輸出的部分存入另一個陣列 最好用連結串列 節省空間

8樓:匿名使用者

可以設定 先把

陣列抄所有值都賦

襲值查詢可以通過bai迴圈比對

for (i=0;i++;i然後通過判du斷flag來看看是否找zhi到資料

將數dao組元素置空來表示刪除

9樓:匿名使用者

找到這個數後把後面的數依次前提一位,輸出時丟棄找版到的最權後幾個..

#define n 10

main() ;

int i,j,tem,delnum;

tem=0;

printf("\nenter del num:");

scanf("%d",&delnum);

for(i=0;i

}printf("\n");

for(i=0;i

printf("%d,",a[i]);

getch();

return;}

c語言刪除一個整型陣列裡面重復的元素

10樓:匿名使用者

利用雙重迴圈,將每個值依次與其後面的值相比較,如果有相同的則刪除該元素即可。

刪除時,可以使用將後面元素依次向前移動一位,同時總長度減一的方式。

參考**如下:

int remove_repeat(int *a, int l){int i, j, k;

for(i = 0; i < l; i ++){for(j = i+1; j

11樓:周小狐狸愛我

int elimination(int a, int count)}}

return count;}

12樓:匿名使用者

我跟你直接說思路吧,他們這樣的雙重迴圈陣列太大的話很耗時間的,你可以,先給陣列排序,然後刪除多餘的數就很耗操作了,只需要看相鄰的數就可以了。

13樓:匿名使用者

int i, j;

int buf = ;

int count = strlen(buf);

for(i = 0; i < count; i++)}}buf[count] = '\0';

提供給你個思路 我沒有除錯,不過思路我覺得不錯!

就是從陣列裡第一個元素開始找相同的,如果相同就把 相同元素和陣列最後一位交換,下一個相同的就和陣列倒數第二位交換,最後把 count位變成『/0』,最後列印陣列。

14樓:匿名使用者

for(int i=0; iif(arr[j]=arr[i])length--;

break;}}}

15樓:匿名使用者

將第一個元素輸出,再後面的一個個與前面的比較,有相等的就繼續迴圈,不等的就輸出,用for語句做

刪除有序陣列中的重複元素c語言,C語言,刪除陣列中的重複元素

int remove int arr,int sz 當index與i之間有其他元素,那麼這些元素必定是重複得了,直接覆蓋掉 return index 1 如果注意到是有序,你還是要問的話 c語言,刪除陣列中的重複元素 include stdafx.h vc 6.0加上這一行.include stdi...

C語言 給陣列中的元素賦值

好像沒有什麼直接的辦法,只有使用迴圈語句來判斷最後一個出現的非0值為最後一個元素,也就是說如果你初始化為1,2,3,0,4,5這樣有辦法判斷,但若初始化為1,2,0,3,0,0就沒辦法判斷了,只能判斷到3,因為3是最後一個非0值。因為系統預設會把其他部分都初始化為0,所以沒有辦法判斷 沒有賦值的元素...

c語言中陣列元素互換的問題,C語言中陣列元素互換的問題

當index為0時,bai陣列中下標為du0的和下標為4 0的元素交換,也zhi就是第一個和最後一dao個交換,回1,5 交換 當index為1時,答陣列中下標為1的和下標為4 1的元素交換,也就是第二個和倒數第二個交換,2,4 交換 因為此陣列元素的個數為奇數個,所以,最中間那個沒有必要交換,所以...