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...