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

c語言數組行列數為0

發布時間: 2023-03-13 10:07:17

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語言中為什麼這個數組輸出都是0

printf輸出的時候,%lf 需要的是double 變數,不需要double指針,去掉&就可以

Ⅲ C語言如何定義0數組

是編譯錯誤吧,你這里的n是個變數,到運行時才能確定,但數組在編譯時就要確定長度,所以出錯。建議這樣#define N 100 再用N

Ⅳ 在我編寫的C語言中,數組輸出的結果為什麼都為0望大神求解!

你要是輸出元素地址,就把%lf改成%d 、%x、%p 你要是輸出元素的值,就把&去掉
看你是輸出元素值,那麼就把&取地址符去掉

Ⅳ 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語言中怎麼令數組的一列為0

我給你拿二維數組舉例吧。比如說一個3行3列的數組,要令第一列的元素為0 ,就可以這樣設置num[i][0],其中i=0,1,2;如果要令第二列元素為0 ,num[i][1],其中i=0,1,2;第三列類推就可以了

Ⅶ c語言中怎麼給一個行和列都是100的二維數組都賦0值

有兩種方法可以做到。
一、循環賦值。
對每一項分別賦值為0。對於二維數組一般用雙重循環,實際上用單重循環也可以,效率上並無區別。
參考代碼:
TYPE a[100][100];
int i,j;
for(i = 0; i < 100; i ++)
for(j = 0; j < 100; j ++)//雙重循環遍歷。
a[i][j] = 0; //每個賦值為0。
二、整體置零。
在C庫函數中,有memset這一個函數,形式為
/*
Set
N
bytes
of
S
to
C.
*/
void
*memset
(void
*s,
int
c,
size_t
n);
功能為,在地址s指向的內存單元開始,將c個位元組的空間,每個都賦值為c。
這個函數是按位元組賦值的,所以對於賦值0值,可以直接將整個內存空間清零。
參考代碼:
TYPE a[100][100];
memset(a, 0, sizeof(a));//整體清0.
第一種方法更具通用性,後一種方法不是永遠適合,但在可以用memset的情況下,後一種方法更高效。

Ⅷ c語言中怎麼把一維數組初始化為全零啊,不用循環

下面3種方法:

1.int arr[10]={0};

如果只對數組的一部分進行初始化,則編譯器將把其他元素設置為0。因此,當只將第一個元素初始化為0時,編譯器會自動將其他元素設為0 (就像前一句說的那樣)。

2.int arr[31]={};

3.用memset函數在程序開始時初始化數組。比如:

int arr[1024];

memset(arr, 0, 1024); //清零

(8)c語言數組行列數為0擴展閱讀:

memset()函數原型是extern void *memset(void *buffer, int c, int count) buffer:為指針或是數組,c:是賦給buffer的值,count:是buffer的長度。

函數解釋:將s中當前位置後面的n個位元組 (typedef unsigned int size_t )用 ch 替換並返回 s 。

memset:作用是在一段內存塊中填充某個給定的值,它是對較大的結構體或數組進行清零操作的一種最快方法 ,它通常為新申請的內存做初始化工作。