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() 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... 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... main 主函式 main 程式入口 main 1.mian 是c程式的入口一般標準寫法int main void void main 在c中如果省略括號裡的內容會是有程式決定是什麼內容 2.int i,a 10 定義了一個int型別變數叫i並未其分配了sizeof int 的記憶體,還有一個名字為...C語言,刪除陣列中的重複元素,C語言如何刪除陣列中的重複元素?
C語言陣列問題,c語言陣列宣告問題
c語言陣列不懂,C語言,定義了個數的陣列元素個數問題,不懂得不要來亂答。