關於c語言陣列的運算,關於C語言陣列的運算。

2022-02-26 07:21:26 字數 3587 閱讀 9188

1樓:

首先你可以進行單步測試自己看看能不能學習到過程(程式設計師以後寫程式排錯 要學會自己單步測試找問題)

過程很簡單 你定義了一個1維陣列 陣列長度為10 從a[0] —— a[9] 進行for迴圈計算 i=9 a[9]=10-9=1 同理 a8=2 a5=5 a2=8 所以輸出 a2,a5,a8 分別就是852

希望幫到你!

2樓:匿名使用者

看起來比較複雜,其實有個簡單的邏輯。

就看這一句就可以了:a[i]=10-i;

a[2]=10-2=8;

a[5]=10-5=5;

a[8]=10-8=2;

不難看出答案就是:852。

3樓:匿名使用者

由for(i=9;i>=0;i--)

a[i]=10-i;

得陣列a[10]中各陣列元素為a[9]=1,a[8]=2,a[7]=3,a[6]=4,a[5]=5,a[4]=6,a[3]=7,a[2]=8,a[1]=9,a[0]=10

而printf(「%d%d%d」,a[2],a[5],a[8]);輸出a[2]=8,a[5]=5,a[8]=2

所以執行結果為:852

4樓:葛朋

a[i]=10-i;很簡單的啊

c語言如何計算一維陣列個數

5樓:匿名使用者

以上**中sizeof(a)的結果是40,而sizeof(int)的結果是4,len就是10,即陣列a所佔int型的個數;

你可以進行迴圈判斷,當a[i]至a[9]都為0時,有效數值的個數為i

6樓:六道與沛恩

我是用的vs2019編譯的,這個sizeof運算子就直接計算出你inta[10]所預佔的空間大小,試試strlen或者遍歷計數吧

7樓:gta小雞

初值表的內容是在編譯期就確定的,從**中可知初值表元素個數為5個,直接寫5即可。

在執行時沒有任何方法可以得知初值表中有多少個元素。

8樓:貳小叄

main裡面第一行,a[10]就表示分配了10個元素的空間,所以a的size是10個int,故結果為10。

所以就第一行改為a[5]或者a就可以了。

估計你想要的是a這種,根據你列表裡的元素個數,自動分配。

9樓:匿名使用者

方法一、最簡單的一種獲取陣列元素個數的方法是通過while迴圈到'\0'字元之前的元素。

int main()

;下面是利用while迴圈獲取陣列中除了『\0'的元素個數int i = 0;

while (a[i] != '\0')

printf("%d\n", i);//返回數字5return 0;

}方法二、

int main()

;int len = sizeof(a) / sizeof(a[0]);//獲取陣列的定義長度

printf("%d\n", len);//返回數字5return 0;}

c語言 結構體陣列 計算個數

10樓:匿名使用者

法一: 可以自己定義一個計數器 int count=0; 在迴圈輸入過程中,使用它來進行計數。

法二:在開始過程中將 stu[100]的char name[20]全部初始化為\0,輸入完畢後,在迴圈依次判斷是否為\0,統計數字。

建議使用法一。

不過樓上說得對,這題確實沒有太大的意義,如果是動態陣列的話,還有點意思。這靜態的,沒意思。

11樓:匿名使用者

給陣列初始化,判斷值是否被改變-----------------這題沒意義的

12樓:匿名使用者

那你再定義一個計數變數i用於計數,

c語言中如何計算一個陣列佔記憶體多少空間?

13樓:匿名使用者

c語言中copy

陣列的sizeof值等於陣列所佔用bai的記憶體位元組數。duc語言中有一個zhi專門用於檢測型別或變數或陣列在內dao存中所佔有的空間(位元組數)的操作符sizeof,用sizeof可以直接檢測出陣列在記憶體佔有的位元組數。

語法規則是:sizeof(x); (識別沒有歧義時也可寫成sizeof x;)——其中x是型別名、變數名或陣列名等,返回x所佔位元組數(int型)。

14樓:孤獨的風

型別所佔空間*陣列長度,其中型別所佔空間由系統決定,可以使用sizeof函式測出

15樓:

要看陣列元素的型別,不同型別資料所佔的儲存空間是不同的。

計算方法是用你所定義的型別所佔的位元組數*陣列長度

16樓:匿名使用者

首地址由陣列名錶示,也是0元素的地址。

若有: int a[10];

則:a與&a[0]都表示a陣列所佔儲存空間的起始地址

17樓:小八

型別*陣列長度

比如:int a[10] sizeof(a)=4*10

用c語言計算一個陣列內的所有數的平均值

18樓:匿名使用者

printf("%f",d/10)這行**的輸出控制有誤,因為d定義的是int型,d/10還是int型,應該使用%d,而不是%f,%f是單精度浮點型資料。

格式說明由「%」和格式字元組成,如%d%f等。它的作用是將輸出的資料轉換為指定的格式輸出。格式說明總是由「%」字元開始的。不同型別的資料用不同的格式字元。

格式字元有d,o,x,u,c,s,f,e,g等。

1.%d整型輸出,%ld長整型輸出,

2.%o以八進位制數形式輸出整數,

3.%x以十六進位制數形式輸出整數,

4.%u以十進位制數輸出unsigned型資料(無符號數)。

5.%c用來輸出一個字元,

改過之後執行結果:

19樓:滄海雄風

#include

int main (void)

,d=0;  //第一 你的d沒有初始化 所以值是不確定壟斷int s;

for(s=0;s<10;s++)

d+=a[s];

printf("%f",(float)d/10);   //第二這裡沒有轉換兩個int除出來是個整數用%f輸出是錯誤的

return 0;

}1.000000press any key to continue

20樓:

d沒有賦初值;a中只有a[0]==10,a[1]~a[9]都是垃圾數;平均值的演算法d/10也不對,應該是d/10.0才對。這樣的錯誤,你能得到什麼平均值?

21樓:被主遺棄的人

首先,你的d沒有初始化,應該寫成d=0,建議d宣告為double。第二,printf那句,d/10,兩個int相除還是int,需要強轉(double)d/10就沒有問題了,當然最好是把d宣告為double,就不用強轉了

關於C語言的,關於c語言的

i 表示先在語句裡引用i的值然後在自增1如int i 5,s s i i 那麼s就等於10 在此語句後i就等於7了 因自增了兩次!while a i a i 和while a i a i 1 i 在while括號內的成立了就執行迴圈內的語句不成立則不執行!第一句括號內的成立,所以執行下面的i 語句,...

關於C語言中陣列的定義,C語言中如何定義陣列

一樣的,陣列在做函式引數時,傳遞給函式的都是陣列的首指標,哪怕你的函式這樣寫 void swp int p 在呼叫的時候swp array 也是可以的。只要傳遞給函式一個陣列的首指標就行了,而你的array正好是陣列的首指標。char s 10 123 是表示前三個元素分別是1,2,3但s 2 0 ...

關於C語言二維陣列的問題,關於c語言二維陣列的問題

include void main for i 0 i 3 i for i 0 i 3 i for j 0 j 7 2 j printf change after n for i 0 i 3 i 1 2 3 4 5 6 78 9 10 11 12 13 1415 16 17 18 19 20 217...