C語言陣列元素刪除小問題,C語言刪除陣列元素問題

2022-05-21 22:10:25 字數 3819 閱讀 7754

1樓:匿名使用者

你好!!

**是在你基礎之上修改的,看後面的註釋:

#include

#include

#include

int main(void)

;num = 3;

length = 10;

for (i=0; i

2樓:匿名使用者

#include

int main(void) ;

int num = 3, length = 10;

int i, j;

for (i=0; i

你'\0'幹什麼?是int陣列啊,不是char啊少年

c語言刪除陣列元素問題

3樓:匿名使用者

for (i=j=0;str[i]!='\0';i++) 從第一個字元開始執行迴圈,直到str[i]='\0'結束,'\0'是字串結束符,標誌著這個字串結束。

if(str[i]!=ch) ch是要刪除的字元,當str[i]!=ch時,把str[i]的值賦給str[j++]這個陣列,如果等於就不執行賦值。

這樣要刪除的字元就成功刪除了。

最後str[j]='\0';加個字串結束符。

4樓:信科院

, str[20]="abceeedeffffgggg",ch='a';

for (i=j=0;str[i]!='\0';i++)//str[i]!='\0',陣列以'\0'結尾,意思是for只進行到陣列末端.

for(int q=0;q<20;q++)cout<

5樓:眾神足球

這函式就是作用就是去除str字串中的指定字元ch

6樓:匿名使用者

哪一點不懂?

只要陣列內的元素不和形參ch的值相等的就賦值為空,相等的依次保留下來。

c語言陣列元素的刪除

7樓:哎呀王子

對於陣列刪除,一般就是使用後面陣列元素前移的操作,來覆蓋前一元素,達到刪除的效果。。。。

例如陣列a[10],要刪除a[5]這個元素,那麼只需要把後面的元素前移一位就行了,也就是a[5]=a[6],a[6]=a[7],a[7]=a[8],這樣子a[5]這個元素的內容就會被全部抹殺掉了。。。。

不過這裡存在一個問題,你一個結構體陣列前移的時候,如何判斷有多少個元素要前移呢。。。。

所以我的做法是在結構體裡面定義一個標示符int flag。。。。

當對這個結構體陣列元素賦值時,如a[10].name="king" 時,那麼就是說下標值為10的元素是存在的,賦完值後,來個a[10].flag=1 來標記一下。。。。

這樣做的話,我們可以進行這樣的刪除操作了,如刪除下標值為5的元素——

int i=5;

for(int j=i+1;a[j].flag==1;i++,j++)

a[i].flag=0;

/* 如果你裡面原來有10個元素,那麼刪除了其中一個,那就剩下9個,a[9]那個位置應該為空,一一把裡面的元素清空太麻煩,直接把它的標示符flag等於0,就表示該位置為空的 */

8樓:匿名使用者

#include

int main(){

int i,j,n,m,a[100];

scanf("%d",&n);

for(i=0;i

9樓:匿名使用者

可以設定 先把陣列所有值都賦值

查詢可以通過迴圈比對

for (i=0;i++;i

將陣列元素置空來表示刪除

10樓:敖安彤

#include

main ()

c語言刪除陣列中一個元素的問題

11樓:匿名使用者

第三十個值不變啊。。

12樓:匿名使用者

程式說的不全n是什麼?

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

13樓:匿名使用者

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

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

14樓:匿名使用者

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

15樓:匿名使用者

可以設定 先把

陣列抄所有值都賦

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

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

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

c語言刪除陣列指定元素

16樓:匿名使用者

只要將刪除後的資料元素像前移動一位即可。

#include

// 刪除長度為len的陣列dat中索引為idx的元素。

void remove(int *dat, int *len, int idx)

void output(int *dat, int len)int main()

, len = 10;

remove(a, &len, 5);

output(a, len);

remove(a, &len, 2);

output(a, len);

return 0;}

17樓:

就是我們不會訴訴,也不會刪除的一個軟體吧

18樓:匿名使用者

void main()

for (i=0;i<10-k;i++)//輸出剩餘的資料,後面的資料為0代表已經被刪除的無意義資料,不必再輸出了。

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

19樓:匿名使用者

for (j=0;i+j<9;j++)

a[i+j]=a[i+j+1];

這段不對

for(j =i; j <9; j++)

20樓:孤鬆獨海

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

if (a[i]==n)

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

21樓:禾生七七

方法:刪除就是將其下

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

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

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

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

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

22樓:匿名使用者

#include "stdio.h"

int main()

C語言,刪除陣列中的重複元素,C語言如何刪除陣列中的重複元素?

include stdafx.h vc 6.0加上這一行.include stdio.h void main void ln for ln sizeof a sizeof int k i 1 i k a k a i for i 0 i printf n include define n 1000 d...

C語言陣列問題,c語言陣列宣告問題

for i 1 i 10 i break 要求按已排好的順序規律將它插入到陣列中.這段改為 for i 1 i 10 i a i 1 m break 你確定是從大到小排列嗎?我怎麼感覺你的程式是從小到大排列的啊。include void main 從鍵盤接收10個數。for j 1 j 10 j f...

c語言陣列不懂,C語言,定義了個數的陣列元素個數問題,不懂得不要來亂答。

main 主函式 main 程式入口 main 1.mian 是c程式的入口一般標準寫法int main void void main 在c中如果省略括號裡的內容會是有程式決定是什麼內容 2.int i,a 10 定義了一個int型別變數叫i並未其分配了sizeof int 的記憶體,還有一個名字為...