㈠ c語言中刪除一個數組怎麼寫
如果數組是有序的,
需要把後面的數據挨個挪上來佔掉前一個的位置,
然後把整個數組長度的記錄減1.
或者乾脆用鏈表,別用數組了
如果數組是無序的,
可以把最後一個記錄挪上來佔掉要刪除的這個記錄位置,然後吧數組長度的記錄減1
㈡ C語言數組刪除
#include<stdio.h>
int main()
{ int i,i1,j,k,n,a[101];
scanf("%d",&n);
for(i=1; i<=n; i++)
{ a[i]=i;
printf("%3d",a[i]);
}
printf(" ");
i=1,k=n;
for(i1=0; i1<n/2; i1++)
{ a[i++]=a[k--]=0;
for(j=1; j<=n; j++)
printf("%3d",a[j]);
printf(" ");
}
return 0;
}
㈢ c語言數組元素的刪除
對於數組刪除,一般就是使用後面數組元素前移的操作,來覆蓋前一元素,達到刪除的效果。。。。
例如數組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]=a[j];
/* 結構體數組可以直接這樣子做,它會自動把a[i]裡面的變數等於a[j]裡面對應的變數 */
}
a[i].flag=0;
/* 如果你裡面原來有10個元素,那麼刪除了其中一個,那就剩下9個,a[9]那個位置應該為空,一一把裡面的元素清空太麻煩,直接把它的標示符flag等於0,就表示該位置為空的 */
㈣ C語言,刪除數組元素
void main()
{
int i,j,n;
int a[10];
int k=0; //記錄刪除數據的個數
printf("請輸入需要刪除的數:\n");
scanf("%d",&n);
printf("請輸入10個元素的數組: \n");
for (i=0;i<10;i++)
scanf("%d",&a[i]);
for (i=0;i<10;i++)
if (a[i]==n)
{
for (j=0;i+j<9;j++)
a[i+j]=a[i+j+1];
k++;//刪除數據的個數加1
a[10-k] = 0; //清除最後一個已經前移過的數據
}
for (i=0;i<10-k;i++)//輸出剩餘的數據,後面的數據為0代表已經被刪除的無意義數據,不必再輸出了。
printf("%5d",a[i]);
}
㈤ c語言中怎麼刪除數組中的第七位數
摘要 main()
㈥ C語言中刪除一個數組元素
一般的數組元素無法刪除,只能將值改變為另一個特定的值,然後發現這個值就直接轉向下一個元素.
用鏈表可以刪除表中的一個結點.
㈦ 在C語言中如何把數組清空
C語言貌似沒有把數組清空的方法啊,或許你可以清除就把它賦值為0,這樣在形式上實現了清楚,不然的話只有動態申請的內存可以釋放。