正文 第19章 數組1(2 / 2)

……

(7)允許在同一個類型說明中,說明多個數組和多個變量。例如:

intmax,min,score[10],avg[20];

定義數組後,它所占用的存儲單元中的值是不確定的。引用數組元素之前,必須保證數組的元素已經被賦予確定的值。給數組賦值的方法很多,除了用賦值語句對數組元素逐個賦值外,還可采用初始化賦值和鍵盤輸入的方法。

數組初始化賦值是指在定義數組時給數組元素賦予初值。數組初始化是在編譯階段進行的,這樣做可以減少運行時間,提高效率。

數組初始化賦值的一般形式如下:

數據類型數組名[常量表達式]={值,值,…,值};

(1)可以隻給部分元素賦初值。當花括號中值的個數少於元素個數時,表示隻給前麵部分元素賦值,後麵的元素自動賦0值。例如:intnum[5]={0,1,2};表示隻給num[0]~num[2]共三個元素賦值,而後兩個元素自動賦0值。

(2)隻能給元素逐個賦值,不能給數組整體賦值。例如給5個元素全部賦1值,隻能寫為intnum[5]={1,1,1,1,1};而不能寫成intnum[5]=1;或intnum[5]={1};。

(3)如給所有元素賦值,則在數組說明中可以省略數組元素的個數。例如:intnum[5]={0,1,2,3,4};等價於intnum[]={0,1,2,3,4};。

(4)鍵盤輸入可以在程序執行過程中對數組作動態賦值,這時可用循環語句配合scanf函數逐個對數組元素賦值。

[例71]從鍵盤輸入10個數字,並求出其中的最大值、最小值和平均值。

#include

voidmain()

{inti,max,min,avg=0,num[10];

printf("input10numbers:\n");

for(i=0;imax)

max=num[i];/*當前元素比max大,則賦給max*/

if(num[i]

#defineMONTH12

voidmain()

{intfib[MONTH+1]={0,1,1};

/*fib[0]不用,fib[1]和fib[2]的初值都為1*/

inti;

for(i=3;ibubble[i+1])

{temp=bubble[i];

bubble[i]=bubble[i+1];

bubble[i+1]=temp;

printf("Thesortednumbers:\n");

for(i=0;i