用C語言編寫一個在陣列中刪除指定值函式

2023-06-02 00:20:16 字數 4309 閱讀 5127

1樓:匿名使用者

#include

#include

*value - 指定值。

*arr - 陣列。

*arr_len - 陣列長度的地址(指標)int delete_node(const int value, int *arr, int *arr_len)

(arr_len);

elseint main()

int arr_len = sizeof(arr)/sizeof(arr[0]);

for (int i=0; iprintf(""

for (int i=0; iprintf(""

2樓:救贖削腎客

跟你的問題一模一樣。

c++陣列刪除指定元素

3樓:惠企百科

//浮點數型陣列(以double型陣列為例)

intremovegivenvalue(double*parray,constintnlen,constdoublelfgivenvalue)

if(parray==null||nlen<1)

return0;

intnvalidlen=0;

for(inti=0;iif(fabs(parray[i]-lfgivenvalue)<

continue;

parray[nvalidlen++]parray[i];

returnnvalidlen;

整型陣列。intremovegivenvalue(int*parray,constintnlen,constintngivenvalue)

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

4樓:禾生七七

方法:刪除就是將其下。

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

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

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

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

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

c++陣列刪除指定元素

5樓:刺友互

1、開啟delphi7整合開發環境,在預設工程的form1窗體放一個button1按鈕和一個memo1控制元件。

2、在源**檔案的implementation定義一個字串型別動態陣列型別,並宣告這種型別的一個變數。

3、在form1的oncreare事件方法,寫如下**:procedure :

tobject);var i:integer;begin。

4、在源**的implementation中定義一個刪除動態陣列指定元素的過程。

5、雙擊button1按鈕進入onclick事件方法。

6、f9執行程式,memo1顯示字串動態陣列內容。

7、點選button1刪除了指定第二個元素,成功。

6樓:天方夜譚的哆啦a夢

//浮點數型陣列(以double型陣列為例)

intremovegivenvalue(double*parray,constintnlen,constdoublelfgivenvalue)

if(parray==null||nlen<1)

return0;

intnvalidlen=0;

for(inti=0;iif(fabs(parray[i]-lfgivenvalue)<

continue;

parray[nvalidlen++]parray[i];

returnnvalidlen;

整型陣列。intremovegivenvalue(int*parray,constintnlen,constintngivenvalue)

if(parray==null||nlen<1)

return0;

intnvalidlen=0;

for(inti=0;iif(parray[i]==ngivenvalue)

continue;

parray[nvalidlen++]parray[i];

returnnvalidlen;

7樓:匿名使用者

int n,i,m;

int *p=new int[20]; 申請記憶體20*4個位元組。

cout<<"輸入陣列長度:";

cin>>n;

for(i=0;i>p[i];

for(i=0;i>m;

for(i=0;ifor(i=0;icoutreturn 0;

c語言陣列元素的刪除與增加。

8樓:無聲的硝煙

c語言中的陣列本質上是在計算機記憶體中分配的連續空間。

如果需要對元素進行插入和刪除,並不能直接將記憶體中為該陣列分配的空間進行插入/新增和刪除,而是隻能通過資料複製的方式將本來不在這個位置的元素進行移動,看起來像是元素的前移和後移。

舉個例子吧:整型陣列(1, 2, 3, 4, 5),如果要把2刪除,那麼可以將3,4,5分別向前移動,變成(1, 3, 4, 5, 5)。由於陣列長度分配以後不會變化,因此最後一個多餘的5實際上並不能刪掉,它只是表示無意義的位置。

因此對於程式設計人員來講,需要另一個引數來記錄這個陣列中你認為有用的元素是前多少個。

值得注意的是,如果陣列長度不足以儲存新的元素時,是無法動態地增加陣列長度的。如果非要這麼做,必須要在陣列分配時保證陣列大小足夠大。這也就是一些新手經常將陣列長度設定為1000,10000的原因。

回到這個問題:

預定義的陣列,長度為20

int array[20] =

陣列當前有效長度。

int arraylen = 0;

如果不是全域性陣列,則需要將陣列指標和陣列長度指標傳入進行修改。

void insertarray(int newelement, int index)

void deletearrayelement(int index)

c語言:怎麼銷燬陣列呢?

9樓:信必鑫服務平臺

要看陣列所使用的記憶體空間。

1、如果是區域性函式棧空間中的陣列,有程式自動**。

void f()

區域性棧空間上的陣列,程式自動**。

2、如果是動態記憶體分配 的陣列,在c語言中使用free()將其釋放。**有作業系統的堆管理器來進行操作。

void f()

陣列在程式設計中,為了處理方便, 把具有相同型別的若干變數按有序的形式組織起來。這些按序排列的同類資料元素的集合稱為陣列。在c語言中, 陣列屬於構造資料型別。

一個陣列可以分解為多個陣列元素,這些陣列元素可以是基本資料型別或是構造型別。因此按陣列元素的型別不同,陣列又可分為數值陣列、字元陣列、指標陣列、結構陣列等各種類別。

例如:int a[10]; 說明整型陣列a,有10個元素。

float b[10],c[20]; 說明實型陣列b,有10個元素,實型陣列c,有20個元素。

char ch[20]; 說明字元陣列ch,有20個元素。

編寫c語言程式要求用結構體,編寫一個C語言程式,要求用結構體。

我給你寫一個 先給你寫一部分吧 include include typedef struct lnode lnode void createlnode int student number void sort main structstudent n 參賽學生總數,每人一個檔案 陣列 unsigne...

用C語言編寫輸入整數到陣列中,逆序後將其存回陣列並輸出

將前5個數和後5個數映象對調即可。如下 include stdafx.h if the vc 6.0,with this line.include stdio.h int main void int a 10 i,j printf input 10 integers.n for i 0 i 10 s...

C語言編寫程式計算C語言編寫一個程式計算。。。

親,你的程式迴圈copy永遠不會停止 bai此句for i 1 fabs 1 i i 1 1e 6 i i永遠大於0 所以不會停du止 所以沒輸出入 沒錯zhi誤計算機只能計算有限的數值,這dao種無限逼近型的不能用這種方法算的 fabs 1 i i 1 有錯誤,bai 1 i i 1 1 i i ...