c語言從數(shù)組中刪除一個數(shù) C語言如何從數(shù)組中刪除一個指定元素?
C語言如何從數(shù)組中刪除一個指定元素?#include<stdio.h>int main(){int a[10]={1,1,2,6,5,6,3,5,7,3}int v,i,n scanf(%d,
C語言如何從數(shù)組中刪除一個指定元素?
#include<stdio.h>int main(){int a[10]={1,1,2,6,5,6,3,5,7,3}int v,i,n scanf(%d,&v)for(i=n=0i<10i)if(a[i]!=v)a[n]=a[i]for(i=0 i<n i)printf(%d,a[i])返回方法:刪除是將下標位置的內(nèi)容設(shè)置為空(即0),然后從該位置開始,向前移動以下內(nèi)容,然后將最后一個位置設(shè)置為空(即0)。向前移動不過是arr[I-1]=arr[I]的一個類似含義。當確認數(shù)組中充滿整數(shù)時,可以將此元素設(shè)置為-1以刪除它。加法是檢查數(shù)組中是否有-1個元素,如果有,將它們設(shè)置為您的值。如果全部已滿,請打開一個較大的數(shù)組并復制數(shù)據(jù)。將相應的位一次向前移動一位就是實現(xiàn)刪除操作,刪除操作可以通過for循環(huán)來實現(xiàn)。數(shù)組的內(nèi)存分配:變量在內(nèi)存中的地址從大到?。ㄒ宰止?jié)為單位)。例如,在內(nèi)存中,地址00001010是最小的。但是,數(shù)組有些不同。數(shù)組的元素自然地從上到下存儲,整個數(shù)組的地址就是第一個元素的地址。(但是組成元素的字節(jié)仍然是從大到小排序的)。
C語言中如何刪掉數(shù)組最后一個元素?
1/*
2想法:
3將字符串存儲在字符數(shù)組a中,設(shè)置要復制到數(shù)組B的值,遍歷B的每個元素
4素數(shù),與a中的每個元素進行比較,如果有相同的,則將B中的相應元素設(shè)置為-1。
5個輸出元素非-1 in B.
6*/
7#-包括和ltstdio。H>
8#-包含字符串(&L)。H>
9 char a[100],B[100
]10 void del(int index,int len){
11 for(int i=0I<leni){
12 if(index==i)continue//下標相同,即不比較同一個元素并進入下一個循環(huán)
13 if(B[index]==a[i])B[index]=-1//使用同一個元素,設(shè)為-1
14}
15}
16 int main(){
17 gets(a)
18 memcpy(B,a,sizeof(a))//將a的元素復制到B
19 int len=strlen(a)//求a的長度
20 for(int i=0I<leni){
21 del(i,len)
22}
23 for(int i=0I<leni){//輸出B中的非1元素
24 if(B[i]!=-1){
]25 printf(%C,B[i])
26}
]27}
28返回0
29}