當前位置:首頁 » 編程語言 » c語言利用數組去除元素為0
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言利用數組去除元素為0

發布時間: 2022-03-15 11:38:59

Ⅰ 怎麼用c語言利用函數改變一個全為零的數組的某些元素的值

change還需要一個參數就是這個數組的地址, 不然改變不了該數組的值, 所以一共需要4個參數

voidchange(int*arr[],intx,inty,intz)
{
arr[x][y]=1;
arr[x][z]=1;
}

Ⅱ C語言如何讓數組里所有元素都為0,不是清空數組元素

只需要初始化的時候,將初始化值設置為0即可。

int a[10] = {0};

測試程序如下:

#include<stdio.h>
intmain()
{
inta[10]={0};
for(intinx=0;inx!=10;++inx)printf("%d ",a[inx]);
printf(" ");
return0;
}

運行結果:

Ⅲ C語言數組刪除指定元素

inti,j=0,k=0;
for(i=0;i<200;i++)
{
if(i=198)
{k++;k++;i=0;}
else
{
Array[j]=Array[k];
j++;
k++;
}
while(k==2400)
break;
}

Ⅳ 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]!= '';j++)

if(s[j]!=c)

s[k++]=s[j];

s[k]= '';

printf(" %s ",s);

system("pause");

}

(4)c語言利用數組去除元素為0擴展閱讀

自定義函數代碼如下

function delarrayval2($arr,$v){

$keyarr = array_keys($arr, $v);

if(count($keyarr)){

foreach ($keyarr as $key) {

unset($arr[$key]);

}

}

return $arr;

}

Ⅳ 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語言刪除數組元素

/*我寫了兩種方法!!!方法一*/
#include
<stdio.h>
int
main()
{
int
a[10]={1,3,3,2,5,1,1,5,6,6};
int
i,j,k,x=10;/*x為數組中無重復有效元素的個數*/
for(i=0;i<x;i++)
{
for(j=i+1;j<x;j++)
{
if(a[i]==a[j])
{
x--;//發現重復時減1
for(k=j;k<x;k++)//移動數組
{
a[k]=a[k+1];
}
j--;
}
}
}
for(i=0;i<x;i++)printf("%d",a[i]);
printf("\n");
return
0;
}
/******************************************************************************
*
再寫一種方法!!!
*此方法是把所有重復的都標識出來,然後生成一個新的無重復元素的數組
*******************************************************************************/
#include
<stdio.h>
#define
flag
-1//此外定義了一個標識。把重復的無素賦值為此標識。
int
main()
{
int
a[10]={1,3,3,2,5,1,1,5,6,6};
int
b[10];//用於存儲有無重復元素的數組。
int
i,j,x=10;//x為無重復有效元素個數
for(i=0;i<10;i++)
{
if(a[i]!=flag)//如果標識過了,就不比較了
{
for(j=i+1;j<10;j++)
{
if(a[i]==a[j]&&a[j]!=flag)
{
a[j]=flag;
x--;//標識一個重復項,有效無素減少一個
}
}
}
};
for(i=0,j=0;i<10;i++)//把非標識的元素,給數組b[];
{
if(a[i]!=flag)
{
b[j]=a[i];
j++;
}
};
for(i=0;i<x;i++)printf("%d",b[i]);
printf("\n");
return
0;
}

Ⅶ C語言里有沒有把數組元素全部賦值為0的函數

方法一、在定義時賦初值

1、靜態數組

int[3][3]={0};

2、動態數組

int**a=newint*[n];

for(inti=0;i<n;i++)

a[i]=newint[m](0);

方法二、在定義完後賦值

for(inti=0;i<n;i++)

for(intj=0;j<m;j++)

a[i][j]=0;

方法三、用一個循環吧數組所有元素設置為0:

intarr[100];

inti=0;

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

arr[i]=0;//ThiswillmakeallZERO

方法四、

1、全局變數和靜態變數初始化時會自動被設置為0。如果們聲明全局變數,那麼在運行前會變成全0。

intarr[1024];//Thisisglobal

intmain(void)

//statements

2、對於局部數組簡寫的初始化語法。如果一個數組被部分初始化,沒有被初始化的元素會被自動設置為相應類型的0。這是編譯器自動完成的。可以這樣寫:

intmain(void)

intarr[1024]={0};//ThiswillmakeallZERO

//statements

3、可以用memset函數在程序開始時初始化數組。這條命令這在已經修改了數組之後又想將它重置為全0特別有用。

intarr[1024];

arr[5]=67;

memset(ZEROARRAY,0,1024);//ThiswillreinitializealltoZERO

Ⅷ C語言中刪除一個數組元素

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

用鏈表可以刪除表中的一個結點.