㈠ 用C語言實現一維數組中刪除第N個元素的程序怎麼寫
#include<stdio.h>
int main()
{
int arr[]={1,3,10,5,4,} ;
int delect=0;
int i=0,j=0,k=0,t;
int n;//n為數組長度
n=sizeof(arr)/sizeof(int);
//printf("%d ",n);//測試n
printf("刪除前數組為:");
for(k=0;k<=n-1;k++)
{
printf("%4d",arr[k]);
}
printf(" ");
printf("請輸入要刪除第幾個數: ");
scanf("%d",&t);
for(j=t-1;j<=n-2;j++)
arr[j]=arr[j+1];
printf("刪除後數組為:");
for(k=0;k<=n-2;k++)
{
printf("%4d",arr[k]);
}
}
(1)c編程序刪除多少元素擴展閱讀:
數組使用規則:
1.可以只給部分元素賦初值。當{ }中值的個數少於元素個數時,只給前面部分元素賦值。例如:static int a[10]={0,1,2,3,4};表示只給a[0]~a[4]5個元素賦值,而後5個元素自動賦0值。
2.只能給元素逐個賦值,不能給數組整體賦值。例如給十個元素全部賦1值,只能寫為:static int a[10]={1,1,1,1,1,1,1,1,1,1};而不能寫為:static int a[10]=1;請注意:在C、C#語言中是這樣,但並非在所有涉及數組的地方都這樣,資料庫是從1開始。
3.如不給可初始化的數組賦初值,則全部元素均為0值。
4.如給全部元素賦值,則在數組說明中, 可以不給出數組元素的個數。例如:static int a[5]={1,2,3,4,5};可寫為:static int a[]={1,2,3,4,5};動態賦值可以在程序執行過程中,對數組作動態賦值。這時可用循環語句配合scanf函數逐個對數組元素賦值。
網路-數組
㈡ 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語言刪除數組元素
C語言刪除數組指定元素的源代碼如下:
#include <stdio.h>
main()
{
char s[80],c;
int j,k;
printf(" Enter a string: ");
gets(s);
printf(" Enter a character: ");
c=getchar( );
for(j=k=0;s[j]!= '