for循環 它的壹般形式為:
for(<初始化>;<條件表過式>;<增量>)
語句;
初始化總是壹個賦值語句,它用來給循環控制變量賦初值;條件表達式是壹個關系表達式,它決定什麽時候退出循環;增量定義循環控制變量每循環壹次後按什麽方式變化。這三個部分之間用;分開。
例如:
for(i=1;i<=10;i++)
語句;
上例中先給i賦初值1,判斷i是否小於等於10,若是則執行語句,之後值增加1。再重新判斷,直到條件為假,即i>10時,結束循環。
註意:
(1).for循環中語句可以為語句體,但要用{和}將參加循環的語句括起來。
(2).for循環中的初始化、條件表達式和增量都是選擇項,即可以缺省,但;不能缺省。省略了初始化,表示不對循環控制變量賦初值。省略了條件表達式,則不做其它處理時便成為死循環。省略了增量,則不對循環控制變量進行操作,這時可在語句體中加入修改循環控制變量的語句。
(3).for循環可以有多層嵌套。
例如:
for(;;) 語句;
for(i=1;;i+=2) 語句;
for(j=5;;) 語句;
這些for循環語句都是正確的。
main()
{
int i,j;
printf(i j\n);
for(i=0;i<2;i++)
for(j=0;j<3;j++)
printf(%d %d\n,i,j);
}
輸出結果為:
i j
0 0
0 1
0 2
1 0
1 1
1 2
用for循環求1+2+……+100的和:
main()
{
int sn=0,i;
for(i=1;i<=100;i++)
sn+=i; /*1+2+……+100*/
printf(%d\n,sn);
}
從程序可以看出,使用循環語句可以大大簡化代碼。
數組的聲明
聲明數組的語法為在數組名後加上用方括號括起來的維數說明。本接僅介紹壹維數組。下面是壹個整型數組的例子:
int array[10];
這條語句定義了壹個具有10個整型元素的名為array的數組。這些整數在內存中是連續存儲的。數組的大小等於每個元素的大小乘上數組元素的個數。方括號中的維數表達式可以包含運算符,但其計算結果必須是壹個長整型值。這個數組是壹維的。
下面這些聲明是合法的:
int offset[5+3];
float count[5*2+3];
下面是不合法的:
int n=10;
int offset[n]; /*在聲明時,變量不能作為數組的維數*/
二、用下標訪問數組元素
int offset[10];
表明該數組是壹維數組,裏面有10個數,它們分別為offset[0],offset[1],……offset[9];千萬註意,數組的第壹個元素下標從0開始。壹些剛學編程的人員經常在這兒犯壹些錯誤。
offset[3]=25;
上面的例子是把25賦值給整型數組offset的第四個元素。
在賦值的時候,可以使用變量作為數組下標。
main()
{
int i,offset[10];
for(i=0;i<10;i++) scanf(%d,&offset[i]);
for(i=9;i>=0;i--) printf(%d ,offset[i]);
printf(\n);
}
題目的意思是先輸入10個整數,存入到數組中,然後反序輸出。
三、數組的初始化
前面說了,變量可以在定義的時候初始化,數組也可以。
int array[5]={1,2,3,4,5};
在定義數組時,可以用放在壹對大括號中的初始化表對其進行初始化。初始化值的個數可以和數組元素個數壹樣多。
如果初始化的個數多於元素個數,將產生編譯錯誤;如果少於元素個數,其余的元素被初始化為0。
如果維數表達式為空時,那麽將用初始化值的個數來隱式地指定數組元素的個數,如下所式:
int array[]={1,2,3,4,5};
這也表明數組array元素個數為5。
main()
{
int i,array[]={1,3,5,7,9,11};
for(i=0;i<5;i++) printf(%d ,array[i]);
printf(\n);
}
最終結果為1 3 5 7 9
好好學吧,祝妳成功!